Unicode

Unicode的编码范围为U+0000 ~ U+10FFFF,一共包含

216∗17=1114112

2

16

17

=

1114112

个码位。 整个编码空间划分为17个平面(plane),每个平面包含

216=65536

2

16

=

65536

个码位(codepoint)。 其中0号空间叫做基本多文种平面(Basic Multilingual Plane, BMP),其他平面叫做补充平面(supplementary planes)。

平面的概念来源于UTF-16的编码,双字符能编码16个平面

216∗16=210∗210=220=1048576

2

16

16

=

2

10

2

10

=

2

20

=

1048576

个码位,加上单字符BMP平面,一共17个平面。详细我们会在UTF-16的章节进行说明。

各平面的分布如下:

Plane范围名称Plane 0U+0000 ~ U+FFFF基本多文种平面(Basic Multilingual Plane, BMP)Plane 1U+10000 ~ U+1FFFF多文种补充平面(Supplementary Multilingual Plane, SMP)Plane 2U+20000 ~ U+2FFFF表意文字补充平面(Supplementary Ideographic Plane, SIP)Plane 3U+30000 ~ U+3FFFF表意文字第三平面(Tertiary Ideographic Plane, TIP).Plane 4 ~ 13U+40000 ~ U+4FFFF未使用(unassigned)Plane 14U+E0000 ~ U+EFFFF特别用途补充平面(Supplementary Special-purpose Plane, SSP)Plane 15 ~ 16U+F0000 ~ U+10FFFF保留作为私人使用区(Private Use Area, PUA)

各平面作用

Plane 0

第0平面,BMP包含了几乎所有现代语言的常用字符和大量的符号。具体分布可以查看

百度百科

# 代理Surrogates

U+D800 ~ U+DFFF

除了文字和符号外,在BMP中2048个码位被保留作为代理(Surrogates)

高代理(High Surrogates)

U+D800 ~ U+DBFF

低代理(Low Surrogate)

U+DC00 ~ U+DFFF

他们在UTF-16对非BMP字符进行编码的时候成对出现,用来对码位超过65536的字符进行编码。

# 变量选择器Variation_Selectors

U+FE00 ~ U+FE0F

BMP中包含16个变量选择器。目的是用来指明特定字符的选择类型。如:

VS12(U+FE0E)标明该Emoji是白种人形态

VS13(U+FE0E)标明该Emoji是黄种人形态

VS14(U+FE0E)标明该Emoji是黑种人形态

VS15(U+FE0E)标明该文字是文字

VS16(U+FE0F)标明该文字是Emoji

Plane 1

第1平面,多文种补充平面。包含古文字,专用文字,符号和特定领域用的标记。

古文字诸如埃及象形文字,楔形文字等,现代音乐标记,Emoji表情等都属于这个平面的范畴

Plane 2

第2平面,表意文字补充平面。主要对CJK的字符进行补充

Plane 3 ~ Plane13

暂时还没有分配任何字符

Plane 14

特别用途平面,240个(VS17~VS256)补充变量选择器(Variation Selectors Supplement)补充就在这个平面定义

Plane 15 & Plane 16

私用

其他阅读

Plane (Unicode) - Wikipedia