基本編解碼器
阿新 • • 發佈:2021-10-25
基本的編解碼器
Python自帶了超過100中編解碼器(codec,encoder/decoder),用於文字和位元組之間相互轉換。
每個編碼器都有一個名稱,如'uft_8',而且經常有幾個別名,如果'uft8','uft-8'和'U8'。
這些名稱可以傳遞給open()、str.encode()、bytes.decode()等函式的encoding引數。
for codec in ['latin_1','utf_8','utf_16']:
print(codec,'EL Nino'.encode(codec),sep='\t')
latin_1 b'EL Nino' utf_8 b'EL Nino' utf_16 b'\xff\xfeE\x00L\x00 \x00N\x00i\x00n\x00o\x00'
latin1(即iso8859_1)
一種重要的編碼,是其他編碼的基礎,例如cp1252和Unicode(注意,latin1於cp1252得位元組值是一樣的,甚至連碼位也相同)
cp1252
Microsoft指定的latin1超集,添加了有用的符號,例如彎引號和歐元符號;有些Windows應用把它成為"ANIS",但它並不是ANSI標準
cp437
IBM PC最初的字符集,包括框圖符號。與後來出現的latin1不相容
gb2312
用於編碼簡體中文的陳舊標準;這是亞洲語言中使用較廣泛的多位元組編碼之一
uft-8
目前Web最常見的8位編碼;與ASCII相容(純ASCII文字是有效的UTF-8文字)
uft-16le
UTF-16的16位編碼方案的一種形式;所有UTF-16支援通過轉義序列(稱為”代理對“)表示超過U+FFFF的碼位
UTF-16取代了1996年釋出的Unicode1.0編碼(USC-2)。這個編碼在很多系統中仍在使用,但是支援的最大碼位是U+FFFF。從
Unicode6.3起,分配的碼位中有超過50%在U+10000以上,包括逐漸流行的表情符號。