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 0 | U+0000 ~ U+FFFF | 基本多文种平面(Basic Multilingual Plane, BMP) |
Plane 1 | U+10000 ~ U+1FFFF | 多文种补充平面(Supplementary Multilingual Plane, SMP) |
Plane 2 | U+20000 ~ U+2FFFF | 表意文字补充平面(Supplementary Ideographic Plane, SIP) |
Plane 3 | U+30000 ~ U+3FFFF | 表意文字第三平面(Tertiary Ideographic Plane, TIP). |
Plane 4 ~ 13 | U+40000 ~ U+4FFFF | 未使用(unassigned) |
Plane 14 | U+E0000 ~ U+EFFFF | 特别用途补充平面(Supplementary Special-purpose Plane, SSP) |
Plane 15 ~ 16 | U+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
- 私用