zoukankan      html  css  js  c++  java
  • UNICODE和UCS

    Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。目前的Unicode字符分为17组编排,0x0000 至 0xFFFF,每组称为平面(Plane),而每平面拥有65536个码位,共1114112个。然而目前只用了少数平面。UTF-8UTF-16UTF-32都是将数字转换到程序数据的编码方案。
    通用字符集(Universal Character Set, UCS)是由ISO制定的ISO 10646(或称ISO/IEC 10646)标准所定义的标准字符集。UCS-2用两个字节编码,UCS-4用4个字节编码。
    历史上存在两个独立的尝试创立单一字符集的组织,即国际标准化组织(ISO)和多语言软件制造商组成的统一码联盟。前者开发的 ISO/IEC 10646 项目,后者开发的统一码项目。因此最初制定了不同的标准。
    1991年前后,两个项目的参与者都认识到,世界不需要两个不兼容的字符集。于是,它们开始合并双方的工作成果,并为创立一个单一编码表而协同工作。从Unicode 2.0开始,Unicode采用了与ISO 10646-1相同的字库和字码;ISO也承诺,ISO 10646将不会替超出U+10FFFF的UCS-4编码赋值,以使得两者保持一致。

    http://blog.csdn.net/hihui/article/details/54836017

    编码类型

    UNICODE是统一码联盟组织定义的编码。

    UCS是国际标准化组织iso开展的ISO/IEC 10646项目定义的编码。

    (注, 到UNICODE2.0上述两种编码都基本一致了)

    实现类型

    UTF-8/UTF-16 是UNICODE编码的实现。
    UCS-2/UCS-4 是UCS编码的实现。


    例子

    举例来说,汉字"汉"的编码是6C49
    如果用UTF-16实现,那么就是: 6C 49(01101100   01001001)
    如果用UTF-8实现,  那么就是: E6 B1 89(11100110 10110001 10001001)


    UCS-2编码和UTF-8之间的映射关系:
    UCS-2编码(16进制)   UTF-8 字节流(二进制)
    0000 - 007F         0xxxxxxx
    0080 - 07FF         110xxxxx 10xxxxxx
    0800 - FFFF         1110xxxx 10xxxxxx 10xxxxxx


    (到目前为止Unicode-16规范没有指定FFFF以上的字符,所以UTF-8最多是使用3个字节来表示一个字符。但理论上来说,UTF-8最多需要用6字节表示一个字符)

  • 相关阅读:
    图论
    城市吸引力指数
    bzoj3529(莫比乌斯反演+离线+树状数组)
    强制关闭tomcat
    bzoj2154(莫比乌斯反演)
    等差数列求和模板
    联想的显示屏校准(困难)
    bzoj2301(莫比乌斯反演)
    莫比乌斯反演模版
    菜鸟物流的运输网络(网络流)
  • 原文地址:https://www.cnblogs.com/feng9exe/p/7066519.html
Copyright © 2011-2022 走看看