常见的编解码概念
-
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
的编码序列解码,才能得到正确的字符,否则就会乱码