1. 程式人生 > 其它 >基本編解碼器

基本編解碼器

基本的編解碼器

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以上,包括逐漸流行的表情符號。