基本编解码器

基本的编解码器

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

posted @ 2021-10-25 13:42  里列昂遗失的记事本  阅读(163)  评论(0编辑  收藏  举报