Unicode
1.1、Unicode是什么

Unicode是字符集。这个字符集中的字符可以使用多种字符编码方式进行编码。

Unicode官网:http://www.unicode.org

1.2、Unicode标准
1.3、Code Point

Unicode字符集中所有的字符都编一个号,然后做成一个映射表。在做编码的时候,与这个编号进行关联。这个号就是Code Point

Code Point用整数表示,只是,通常,我们习惯使用十六进制整数来表示。为了说明这是Unicode字符集, 使用U+十六进制整数的形式表示一个Code Point,比如U+0000U+10FFFF等。

Unicode定义了1 ,114 ,112Code Point,范围为U+0000 ~ U+10FFFF

如果每个Code Point都能够代表一个有效字符的话,Unicode标准最多能够编码1 ,114 ,112个字符。

Unicode 7.0已经给超过11万个字符分配了Code Point

1.4、Code Plane

Unicode标准把这1 ,114 ,112Code Point分成了17Code Plane, 编号为#0#16

每个Code Plane包含65,536 = 2^16Code Point。(17 * 65,536 = 1,114,112

Unicode7.0只使用了17个平面中的6个,并且给这6个平面起了名字,如下图所示:

Plane编号短名称全名称说明
Plane#0BMPBasic Multilingual Plane大部分常用的字符被分配在这个平面内,比如ASCII字符中的字符、汉字等
Plane#1SMPSupplementary Multilingual Plane一些古老的文字被分配在这个平面内,不常用
Plane#2SIPSupplementary Ideographic Plane一些BMP中没有包含汉字被分配在这个平面里了
Plane#14SSPSupplementary Special-purpose Plane一些非图形字符被分配在这个平面了
Plane#15SPUA-ASupplementary Private Use Area A
Plane#16SPUA-BSupplementary Private Use Area B

编号为#0Code Plane叫做BMPBasic Multilingual Plane,基本多语言平面), 其余的Code Plane叫做Supplementary Planes(补充平面)。

1.5、emoji