相关概念

字符(Characters)和字素(graphemes

这两个术语的含义非常相似。字符是数字实体,字形是书面语言的原子单位(字母,排版连字等)。有时,使用多个字符来显示单个字形。

字形(Glyph)

一种写字的具体方法。有时,相同的字素的编写方式不同,具体取决于其上下文或其他因素。例如,字形 f 和 i 可以显示为字形 f 和字形 i,由连字字形连接。或者没有连字。

码位(Code Points)

码位是Unicode将支持的字符映射到的数字(十六进制)。
码位是由Unicode标准中给出的字符的值。根据 Unicode 的值写为十六进制数,并具有U+前缀。
例如:“汉”的码位为 U+6C49
Unicode编码范围为U+0000 ~ U+10FFFF,一共包含216×17=1114112个码位。这些码位被分成 17 个不同的部分,称为平面(planes),由数字 0 到 16 标识。每个平面包含 65,536 个码位。第一个平面 0 包含最常用的字符,称为基本多语言平面 (Basic Multilingual Plane,BMP)。其他平面叫做补充平面(supplementary planes)。
平面的概念来源于UTF-16的编码,双字符能编码16个平面216×16=210×210=220=1048576个码位,加上单字符BMP平面,一共17个平面。

各平面分布

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)


代码单位(Code Units)

为了存储或传输码位,它们被编码为代码单位,具有固定长度的数据片段。长度以位为单位进行测量,并由编码方案确定,Unicode有几个编码方案:UTF-8,UTF-16等。

unicode字符表示

以汉字“汉”为例

CSS代码

常见的bootstrap的字体图标代码:

  1. .glyphicon-home:before {
  2. content: "\6C49"; /* \ + 十六进制 */
  3. }

上面代码中的6C49就是这个字符的unicode码,16进制。

JS代码

  1. console.log('\u6C49'); /* \u + 十六进制 */

HTML代码

  1. <div>
  2. 这是unicode表示的字符“汉”:&#27721;(十进制)
  3. </div>

参考