Unicode 和 UTF-8、UTF-16之间的区别

Unicode

Unicode 是ISO (国际标谁化组织)的国际组织,为了解决世界上编码不统一的问题,重新搞的一个包括了地球上所有文化、所有字母和符号的编码集。

起初Unicode规定每个字符都是用 2个字节来表示,但是由于英文字符等只需要一个字节就可以表,那就造成了在保存英文文本时,就会浪费一倍的空间。

UTF-16、UTF-8

unicode在很长一段时间内无法推广,直到互联网的出现,为解决unicode如何在网络上传输的问题,于是面向传输的众多 UTF(UCS Transfer Format)标准出现了。
顾名思义,UTF-8就是每次8个位传输数据,而UTF-16就是每次16个位。UTF-8就是在互联网上使用最广的一种unicode的实现方式,这是为传输而设计的编码,并使编码无国界,这样就可以显示全世界上所有文化的字符了。UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度,当字符在ASCII码的范围时,就用一个字节表示,保留了ASCII字符一个字节的编码做为它的一部分,注意的是unicode一个中文字符占2个字节,而UTF-8一个中文字符占3个字节)。从unicode到uft-8并不是直接的对应,而是要过一些算法和规则来转换。

Unicode 和 UTF-8、UTF-16之间的区别

由此可知,UTF-8、UTF-16只是unicode不同的传输标准。因此,可以理解为:
Unicode:是包含世界上所有字符的字符集
UTF-8、UTF-16: 是 Unicode 字符集,不同的编码实现。

发布了190 篇原创文章 · 获赞 19 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/zengchenacmer/article/details/75332190