Unicode
Unicode 源于一个很简单的想法:将全世界所有的字符包含在一个集合里,计算机只要支持这一个字符集,就能显示所有的字符,再也不会有乱码了。
它从 0 开始,为每个符号指定一个编号,这叫做 ”码点”(code point
)。比如,码点 0 的符号就是 null
(表示所有二进制位都是 0)。
U+0000 = null
上式中,U+ 表示紧跟在后面的十六进制数是 Unicode 的码点。
这么多符号,Unicode 不是一次性定义的,而是分区定义。
每个区可以存放 65536
个(2^16
)字符,称为一个平面(plane
)。
目前,一共有 17 个平面,也就是说,整个 Unicode 字符集的大小现在是
2^21
。最前面的 65536 个字符位,称为 基本平面(
缩写 BMP
),它的码点范围是从0
一直到2^16-1
,写成 16 进制就是从U+0000
到U+FFFF
。所有最常见的字符都放在这个平面,这是 Unicode 最先定义和公布的一个平面。
剩下的字符都放在辅助平面(缩写 SMP),码点范围从 U+010000
一直到 U+10FFFF
。
Unicode 只规定了每个字符的码点,到底用什么样的字节序表示这个码点,就涉及到编码方法。