编号为#0
的Code Plane叫做BMP
(Basic Multilingual Plane
,基本多语言平面)
BMP
的Code Point
的范围为U+0000 ~ U+FFFF
。总共65535
个。 大部分常用的字符都被分配到该平面里的Code Point
上了。
ASCII字符集中的字符被分配在这里。ASCII字符集中共有128
个字符, 占据了BMP
的前128
个Code Point
。 并且这128
个Code Point
与ASCII编码完全一样。
ISO-8859-1字符集中的字符被分配在这里。ISO-8859-1字符集中共有256
个字符, 占据了BMP
的前256
个Code Point
。 并且这256
个Code Point
与ISO-8859-1编码完全一样。
分配了两万多个汉字,其中前20,902
个汉字是按照《康熙字典》里笔画顺序排列的。
High-surrogate Code Point
范围从从U+D800 ~ U+DBFF
,共1024
个。
Low-surrogate Code Point
范围从U+DC00 ~ U+DFFF
,共1024
个。
这2048
个Code Point
并没有分配给有效的字符。它们是为UTF
编码保留的。
一个High-surrogate Code Point
和一个Low-surrogate Code Point
组成一个Surrogate Pair
, 可以在UTF-16里编码BMP
之外的某个Code Point
。 因为1024 * 1024 + 65,536 = 1,114,112
,也就是说, 我们用BMP
里的Code Point
就可以表示完所有的Unicode
字符。
ZWJ(ZERO WIDTH JOINER,零宽度连接符)
ZWJ
是一个特殊的Code Point
,它的值是U+200D
, 它只是用来连接两个Code Point
的,而这个Code Point
不代表任何有效字符。