Unicode
是字符集。这个字符集中的字符可以使用多种字符编码方式进行编码。
Unicode
官网:http://www.unicode.org
把Unicode
字符集中所有的字符都编一个号,然后做成一个映射表。在做编码的时候,与这个编号进行关联。这个号就是Code Point
。
Code Point
用整数表示,只是,通常,我们习惯使用十六进制整数来表示。为了说明这是Unicode
字符集, 使用U+十六进制整数
的形式表示一个Code Point
,比如U+0000
、U+10FFFF
等。
Unicode
定义了1 ,114 ,112
个Code Point
,范围为U+0000 ~ U+10FFFF
。
如果每个Code Point
都能够代表一个有效字符的话,Unicode
标准最多能够编码1 ,114 ,112
个字符。
Unicode 7.0
已经给超过11
万个字符分配了Code Point
。
Unicode
标准把这1 ,114 ,112
个Code Point
分成了17
个Code Plane
, 编号为#0
到#16
。
每个Code Plane
包含65,536 = 2^16
个Code Point
。(17 * 65,536 = 1,114,112
)
Unicode7.0
只使用了17
个平面中的6
个,并且给这6
个平面起了名字,如下图所示:
Plane编号 | 短名称 | 全名称 | 说明 |
---|---|---|---|
Plane#0 | BMP | Basic Multilingual Plane | 大部分常用的字符被分配在这个平面内,比如ASCII字符中的字符、汉字等 |
Plane#1 | SMP | Supplementary Multilingual Plane | 一些古老的文字被分配在这个平面内,不常用 |
Plane#2 | SIP | Supplementary Ideographic Plane | 一些BMP中没有包含汉字被分配在这个平面里了 |
Plane#14 | SSP | Supplementary Special-purpose Plane | 一些非图形字符被分配在这个平面了 |
Plane#15 | SPUA-A | Supplementary Private Use Area A | |
Plane#16 | SPUA-B | Supplementary Private Use Area B |
编号为#0
的Code Plane
叫做BMP
(Basic Multilingual Plane
,基本多语言平面), 其余的Code Plane
叫做Supplementary Planes
(补充平面)。