码点(code point)
是指与一个编码表中的某个字符对应的代码值。
在Unicode标准中,码点采用十六进制书写,并加上前缀U+,例如U+0041就是拉丁字母A的码点。
Unicode的码点可以分成17个代码平面(code plane)。
第一个代码平面称为基本多语言平面(basic multilingual plane),包括码点从U+0000(0)到U+FFFF(65535)的“经典”Unicode代码;其余的16个平面的码点为从U+10000(65536)到U+10FFFF(1114111),包括辅助字符(supplementary character)。
UTF-16编码采用不同长度的编码表示所有Unicode码点。
在基本多语言平面中,每个字符用16位表示,通常称为代码单元(code unit);而辅助字符编码为一对连续的代码单元。采用这种编码对表示的各个值落入基本多语言平面中未用的2048个值范围内,通常称为替代区域(surrogate area)(U+D800 ~ U+DBFF用于第一个代码单元,U+DC00 ~ U+DFFF用于第二个代码单元)。这样设计十分巧妙,我们可以从中迅速知道一个代码单元是一个字符的编码,还是一个辅助字符的第一或第二部分。