codec是COder/DECoder的首字母组合。它定义了文本跟二进制值的转换方式,跟ASCII那种用一个字节把字符转换成数字的方式不同,Unicode用的是多字节。这导致了Unicode支持多种不同的编码方式。比如说codec支持的4种耳熟能详的编码方式:ASCII、ISO8859-1/Latin-1、UTF-8和UTF-16.其中最著名的是UTF8编码,它也用一个字节来编码ASCI字符,这让那些必须同时处理ASCII码和Unicode码文本的程序员的工作变得非常轻松,因为ASCI字符的UTF-8编码跟ASCII编码完全相同。UTF-8编码可以用1~4个字节来表示其他语言尺空的字符,CJK/East这样的东亚文字一般都是用3个字节来表示,那些少用的、特殊的或者历史遗留的字符用4个字节来表示。这给那些需要直接处理Unicode数据的程序员带来了麻烦,因为他们没有办法按照固定长度逐一读出各个字符。幸运的是我们不需要掌握直接读写Unicode数据的方法,Python已经替我们完成了相关细节,我们无须为处理多字节字符的复杂问题而担心。Python里面的其他编码不是很常用,事实上,我们认为大部分的Python程序员根本就用不着去处理其他的编码,UTF-16可能是个例外。UTF-16可能是以后大行其道的一种编码格式,它容易读写,因为它把所有的字符都是用单独的一个16位字,两个字节来存储的,正因为此,这两个字节的咐携顺序需要定义一下,一般的UTF-16编码文件都需要一个BOM(位顺序标记,Byte Order Mark),或者你显式地定义UTF-16-LE(小端)或者UTF-16-BE(大端)字节序。从技术上讲,UTF-16也是一种变长编码,但它不是很常用(人们一般不会知道或者根本不在意除了基本多文种平面BMP之外到底使用陵简瞎的是那种平面),尽管如此,UTF-16并不向后兼容ASCII,因此,实现它的程序很少,因为大家需要对ASCII进行支持。
相关文章
-
郑州可能发生8级地震吗
2023-03-13 01:19 阅读(30211) -
韦东奕的父亲去世了吗
2023-03-08 12:29 阅读(21714) -
《今夜天使降临》林婷和唐大维结局是什么?
2023-03-11 15:14 阅读(14233)
1 蔡一磊的妻子是谁呀
12289 阅读
2 国岳董事长前妻是谁
10234 阅读
3 抖音96哥是什么人
8754 阅读
4 谁能解释一下“强烈谴责”是什么意思?
8611 阅读
5 老师调走家长感谢的话怎么说呢?
8263 阅读