1 小序
Unicode(统一码,万国码,单一码)是一种编码标准,包括字符集,编码方案,Unicode是为解决传统的字符编码方案(即ASCII编码方案)的只能对英文编码的限制而制定的.它对不同语言的每个字符设定了统一且唯一的二进制编码,以满足跨平台,跨语言的文本处理.
Unicode通常采用两个字节表示一个字符,ASCII一个字符占一个字节,变成一个字符占两个字节,高位补0.Python2在Unicode之前产生,所以Py2只支持ASCII编码.
Unicode是国际组织制定对世界所有语言的文字和符号进行编码的方案.目前,Unicode字符分为17组编排,0x0000~0x10FFFF,每组称为平面,每个平面拥有65536个码位,共1114112个.目前常用的编码方案:UTF-8,UTF-16,UTF-32.
2 UTF
UTF(Unicode Transformation Format,Unicode转换格式)将Unicode定义的数字即把使用Unicode编码方案进行编码的字符或文字转换成程序数据.
2.1 UTF-8
以字节为单位(即8位)对Unicode进行编码(Unicode以两字节表示一个字符),编码过程:
序号 | Unicode编码(十六进制) | UTF-8字节(二进制) |
---|---|---|
1 | 000000~00007F | 0xxxxxxx |
2 | 000080~0007FF | 110xxxxx 10xxxxxx |
3 | 000800~00FFFF | 1110xxxx 10xxxxxx 10xxxxxx |
4 | 010000~10FFFF | 11110xxx 10xxxxx 10xxxxxx 10xxxxxx |
从上表可看出,UTF-8对不同范围的字符使用不同长度的编码.
2.2 UTF-16
UTF-16以16位无符号整数为单位进行编码.
2.3 UTF-32
UTF-16以16位无符号整数为单位进行编码.