utf-8与unicode的区别

时间:2021-11-22 20:17:18

1.Unicode是一种字符集,而utf-8是一种编码方式。Unicode字符集既可以用utf-8编码方式编成计算机能够识别的二进制数值,也可以用utf-16,utf-32等方式编码。

2.Unicode并不是用两个字节表示世界上所有的文字,实际上世界上所有的文字分为17个平面,每个平面都有65536个,也就是需要两个字节来存储的字符数,所以单纯的两个字节不足以来表示世界上所有的文字。

3.utf-8编码方式编出来的结果中第一个字节中连续的1表示这个字符占多少个字节,按照百度百科中的介绍,把Unicode字符集中的字符编码换算成2进制,再填入百科中那些XXXXX的地方,就变成了utf-8的编码结果。

4.为什么不用固定的两个字节去编码Unicode字符集中的字符,见2

5.因为utf-8中没有全为0的字符(至少要有1个连续的1,来表示这个字符占多少个字节,见3),所以文本不会在第一个null字符时截断。而且由于utf-8中有一些固定的,有意义的(比如第一个字节中连续的1)二进制位,所以utf-8编码结果适合用于在网络中传输,因为他可以利用这些二进制位来纠错。