UTF-16
UTF-16
- 描述
- 使用变长字节表示
- 编码规则
- 编号在 U+0000 ~ U+FFFF 的字符 (常用字符集)
- 直接用 2 个字节表示
- U+D800 ~ U+DBFF 编号未定义
- 编号在 U+10000 ~ U+10FFFF 的字符 (增补字符集)
- 用 4 个字节表示
- 前两个字节:高代理项 (U+D800 ~ U+DBFF)
- 后两个字节:低代理项 (U+DC00 ~ U+DFFF)
- 数字编号和二进制表示之间有转换算法 (不展开介绍)
- 编号在 U+0000 ~ U+FFFF 的字符 (常用字符集)
- 判断字节数
- 看前两个字节的编号范围:U+D800 ~ U+DBFF 开头:4 字节,否则:2 字节
- 字节序问题
- 类似 UTF-32,存在大端 (UTF-16BE) 和 小端 (UTF-16LE)
- 应用
- 常用于系统内部编码
- 优点
- 比 UTF-32 节省空间
- 缺点
- 任何字符至少需要 2 字节,对于西欧国家仍浪费空间