Unicode 与 UTF-8
更多
Unicode 是字符编码标准,为文字、符号和控制字符分配码位。码位通常写作 U+ 加十六进制数字;UTF-8 是将 Unicode 码位编码为一至四个字节的可变长度格式。字符、码位、字形和字节是四个不同概念。
UTF-8 编码
| 码位范围 | 字节数 | 首字节形式 |
|---|---|---|
| U+0000—U+007F | 1 | 0xxxxxxx
|
| U+0080—U+07FF | 2 | 110xxxxx
|
| U+0800—U+FFFF | 3 | 1110xxxx
|
| U+10000—U+10FFFF | 4 | 11110xxx
|
多字节序列的后续字节均以 10 开头。U+D800—U+DFFF 是代理码位,不作为独立 Unicode 字符编码;超过 U+10FFFF 的数值也不属于 Unicode 码位。
| 字符 | 码位 | UTF-8 字节 |
|---|---|---|
A |
U+0041 | 41
|
中 |
U+4E2D | E4 B8 AD
|
😀 |
U+1F600 | F0 9F 98 80
|
组合附加符号会使一个可见字形由多个码位构成;UTF-8 的字节数因此不能直接当作文字长度。另见 Unicode 字符。