Unicode 和 UTF-8 的区别
简单来说:
Unicode是「字符集」
UTF-8是「编码规则」
其中:
字符集:为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point)
编码规则:将「码位」转换为字节序列的规则(编码/解码可以理解为加密/解密的过程)
广义的Unicode是一个标准,定义了一个字符集以及一系列的编码规则,即Unicode字符集和 UTF-8、UTF-16、UTF-32等等编码……
Unicode字符集为每一个字符分配一个码位,例如「知」的码位是30693,记作 U+77E5(30693的十六进制为0x77E5)。
UTF-8顾名思义,是一套以8位为一个编码单位的可变长编码。会将一个码位编码为1到4个字节:
U+ 0000 ~ U+ 007F: 0XXXXXXX
U+ 0080 ~ U+ 07FF: 110XXXXX 10XXXXXX
U+ 0800 ~ U+ FFFF: 1110XXXX 10XXXXXX 10XXXXXX
U+10000 ~ U+1FFFF: 11110XXX 10unicode编码转换二进制XXXXXX 10XXXXXX 10XXXXXX
根据上表中的编码规则,之前的「知」字的码位 U+77E5属于第三行的范围:
77 E 5
0111011111100101二进制的77E5
--------------------------
0111011111100101二进制的77E5
1110XXXX 10XXXXXX 10XXXXXX 模版(上表第三行)
111001*********110100101代入模版
E 79 F A 5
这就是将 U+77E5按照 UTF-8编码为字节序列 E79FA5 的过程。反之亦然。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论