常见的编解码概念
-
unicdoe: 囊括了几乎所有的国家不同语言的一套字符编码集 -
UTF-8:可变长的字符编码集(节省空间),将unicode的抽象码映射成一个8位(单个字节的)字符集,utf8编码通常由【1~4】个字节组成 -
UTF-16: 将unicode的抽象码映射成一个16位(2个字节)的字符集,utf16编码通常由2个或4个字节组成 -
BOM:Bytes order mark字节编码顺序标志;分为大端字节序,小端字节序超过两个字节的编码流在进行网络、文件传输时,不同的
cpu编解码字节顺序可能不同。为了能够在不同的环境下都能正确的解码字符,超过两个字节的编码格式必须要携带BOM标记。如:UTF-16、UTF-32而
UTF-8由于其特殊的编解码条件,不需要带BOM标记,python也提供了带BOM标记的utf-8编码格式:utf-8-sig(微软系基本上所有的软件都是带BOM标记,utf-8-sig常用于微软系的软件编解码)传输过程中,解析端按照
BOM的编码序列解码,才能得到正确的字符,否则就会乱码>>> '中'.encode('utf-16_le').decode('utf-16_be') 'ⵎ' # 以小端序列编码,大端序列解码,则出现乱码 >>>

本文介绍了UTF8、UNICODE以及BOM的概念。UTF8是一种可变长度的字符编码集,可由1到4个字节组成。UNICODE则是将抽象码映射为16位字符集,编码可能由2或4个字节表示。BOM(字节顺序标记)用于解决多字节编码在网络和文件传输中可能存在的字节顺序问题,UTF16需要BOM来指示字节顺序,而UTF8则不强制使用。了解这些基础知识对于正确解码字符至关重要。
最低0.47元/天 解锁文章
964

被折叠的 条评论
为什么被折叠?



