Unicode

作者: 木驴的天空 | 来源:发表于2018-05-13 16:16 被阅读25次

    编码

    按照某一规则用二进制表示一个字符。

    Unicode字符集

    Unicode(统一码、万国码、单一码),是计算机科学领域里的一项业界标准。为每种语言中的每个字符设定了统一并且唯一的整数值,把这个数值称为码点(Code Point)。
    但是它并不规定计算机如何存储和传输这个数值(以多少个字节存储,是定长还是变长,Unicode没有字节长度的概念)。
    Unicode定义了一个码点空间包含1,114,112个码点,范围从0到0x10FFFF,也就是说,它仅仅是一个字符映射集。
    Unicode 目前规划的总空间是17个平面(平面0至16),0x0000 至 0x10FFFF,每个平面有 65536 个码点。
    例如,"AB中国"这个字符串,对应的Unicode编码为:

    A  -> \u0041
    B  -> \u0042
    中 -> \u0049
    国 -> \u56FD
    

    UTF编码

    为了计算机的高效存储和传输这个三个码点,出现了UTF编码实现:UTF-8、UTF-16、UTF-32、UCS-2等。也就是说,同样的Unicode值,会被表示为不同的字节长度。
    UTF-8, Unicode Transformation Format – 8-bit使用1到4个8bit字节变长编码表示1,112,064个Unicode码点,向后兼容ASCII,对于ASCII字符只需一个字节的二进制就可以表示。码点数值越小,使用的字节数越少,出现的频率越高。

    UTF-8.png

    UTF-16使用1到2个16bit变长编码表示1,112,064个Unicode码点,它扩展于固定16bit长度的UCS-2。
    UTF-32是四字节定长编码,它会把A、B直接表示为四个字节的二进制,其高位均为0,空间浪费比较严重,因此应用很少。

    相关文章

      网友评论

          本文标题:Unicode

          本文链接:https://www.haomeiwen.com/subject/vdsldftx.html