关于编码unicode

    xiaoxiao2021-03-25  142

    Unicode编码

       ASCII是目前来说使用比较广泛的字符,由一个字节组成的字符集合,可以表示所有拉丁字符,分为7位和8位两种编码,7位的高位用于奇偶校验,可以表示128个字符。但是由于ASCII码只能表示128个字符,不能满足世界其他文字的表示,于是unicode的产生了。

       标准的unicode是两个字节的,可以表示65536个字符。但是后来由于65536个字符也远远不够用,所以就增添了一部分字符。目前主要有以下几种unicode的编码:utf-8,ucs-2,utf15,utf-32。

     

    UTF-8

    UTF-8是可变的字符集合,其中一些字符用1个字节,一些字符用2个字节,一些字符用3个字节,一些字符用4个字节。值在0x0080以下的字符以用1个字节表示,主要适合美国使用的字符。0x0080和0x07FF之间的字符转换为2个字节,这对欧洲和中东地区的语言非常适用。0x0800以上的字符都转换为3个字节,适合中国及东亚的语言,实际上,中国汉字9万多个,这种编码只支持了部分的常用汉字。4字节则表示一些附加字符,其中有部分的汉字。

    Unix平台中普遍支持UTF-8字符集,HTML和大多数浏览器也支持UTF-8,而window和java则支持UCS-2。

    优点:在对欧洲字符的支持上,存储空间较小,也比较高效。

     

     

    UCS-2

    UCS-2是固定长度为16位的unicode字符集。每个字符都是2个字节,UCS-2只支持unicode3.0,所以不支持附加字符。

    UCS-2的优点:

    对于亚洲字符的存储空间需求比UTF-8少,因为每个字符都是2个字节。

    处理字符的速度比UTF-8更快,因为是固定长度编码的。

    对于windows和java的支持更好。

     

     

    UTF-16

    UTF-16也是一种16位编码的字符集。实际上,UTF-16就是UCS-2加上附加字符的支持,也就是符合unicode4.0规范的UCS-2。所以UTF-16是UCS-2的严格超集。

    UTF-16中的字符,要么是2个字节,要么是4个字节表示的。UTF-16主要在windows2000以上版本使用。

    UTF-16相对UTF-8的优点,和UCS-2是一致的。

     

     

    UTF-32

    UTF-32将每个字符都编码为4个字节。任何语言都采用4个字节,所以不用考虑处理字节数不定的字符,这种编码方式就非常有用。但是这种编码太过占内存,也不怎么高效。
    转载请注明原文地址: https://ju.6miu.com/read-7720.html

    最新回复(0)