简介
Unicode(世界统一码)是由世界统一码联盟制定的一套字符编码,其中包含了世界绝大部分的语言文字,还包含了表情文字。在Unicode 2.0之后(最新Unicode 11.0),Unicode编码与UCS(Universal Coded Character Set)基本保持一致。Uincode 版本列表,点击查看。
Unicode 编码提供了一组基本单元编码,为每个基本单元分配一个唯一的编码点(Code Point)。一个文本元素是有一个或多个基本单元组成。例如法语中的Ç 可以看做是由 C 和¸ 组合成的。
名词解释
- Basic Multilingual Plane (BMP) 基础多语言层面
- Supplementary Multilingual Plane (SMP) 多语言补充层皮
- Supplementary Ideographic Plane (SIP) 表意文字补充平面
- Supplementary Special-purpose Plane (SSP) 特别用途补充平面
- Private Use Area-A Plane (PUA-A) 私人使用区-A平面
- Private Use Area-B Plane (PUA-B) 私人使用区-B平面
- CJK 中国、日本、韩国 三个国家的简称
- CJKV 中国、日本、韩国、越南 四个国家的简称
- RTL right-to-left 从右到左
- BE big-endian 大端序列, 高位在前(低地址),低在后(高地址)
- LE little-endian 小端序列, 一个单元在计算机中的存放时按照低位在前(低地址),高位在后(高地址)的模式存放。
分配情况
整体
BMP 分配情况
基础层面中D800-DFFF 区间为代理区间,区间内的代码点不表示任何字符。一个UTF-16编码只能表示BMP中的字符,无法表示BMP外的其他层面。通过代理区我们可以使用两个UTF-16编码来表示BMP外层面的一个字符。
SMP 分配情况
编码的实现方式
计算机处理信息的最小单元为字节,而一个字节无法表示Unicode中的所有字符。为了表示所有的字符,就需要一种实现方式将Unicode中的字符编码转换为计算机可以处理的字节序列。
Unicode编码的实现方式有:
- UTF-8
- UTF-16
- UTF-32