因为计算机硬件只能识别二进制数据,可抽象字符本身并不包含数值信息,所以导致计算机硬件无法识别抽象字符。为了解决这个问题,我们需要为抽象字符绑定数值信息,也就是在字符和码点间建立起映射关系,Unicode 标准中将这种映射关系称为"已编码字符"。
"已编码字符"在术语表中的正式定义是:抽象字符和码点之间的映射。这听起来有点拗口,也不便于理解,通常我们只需将"已编码字符"理解为与对应码点一同使用的抽象字符。已编码字符集则是已编码字符的集合,其中的每个字符都拥有相应的码点。
另外,在大多数语境中通常会将"已编码字符"简写为:字符集(character set)、charset 或编码集(code set)。
1. 相关术语
1.1 码点
码点 (code point) 是指"已编码字符集"中某个字符的值或位置。一个"已编码字符集"一般可以用一至多张二维表来表示,二维表中行与列交叉的点称之为码点,每个码点分配一个唯一的编号,称之为码点值或码点编号。除开某些特殊区域(比如代理区、专用区)的非字符码点和保留码点,每个码点唯一对应于一个字符。
码点可以是编码空间 (codespace) 中的任意值,对 Unicode 标准而言,可以是 0 ~ 0x10FFFF 中的任意值。Unicode 标准中将码点分为 7 种基础类型:Graphic、Format、Control、Private-Use、Surrogate、Noncharacter、Reserved。
在 Unicode 标准中,码点采用 16 进制书写,并加上前缀 U+ (例如,拉丁字母 A 的码点是 U+0041 )。Unicode