相关概念
字符(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的字体图标代码:
.glyphicon-home:before {
content: "\6C49"; /* \ + 十六进制 */
}
上面代码中的6C49就是这个字符的unicode码,16进制。
JS代码
console.log('\u6C49'); /* \u + 十六进制 */
HTML代码
<div>
这是unicode表示的字符“汉”:汉(十进制)
</div>