UTF-8
UTF-8 是 Unicode 的变长编码形式,使用 1 至 4 字节表示一个码点,与 ASCII 完全向后兼容,是 Web 与现代系统的事实标准。
用途
在保持 ASCII 兼容(英文不膨胀)的同时覆盖全部 Unicode 码点,且字节序无关、自同步,适合网络传输。
机制
码点范围决定字节长度:U+0000-007F 用 1 字节;U+0080-07FF 用 2 字节;U+0800-FFFF 用 3 字节;U+10000-10FFFF 用 4 字节。首字节的高位 1 数量指示序列长度。
用例
- HTML / XML / JSON 文档默认编码
- HTTP 与电子邮件正文传输
- 源代码文件编码
- 数据库默认字符集
示例
- 输入
A输出0x41An ASCII character, 1 byte
- 输入
U+4E2D输出0xE4 0xB8 0xADA BMP CJK ideograph, 3 bytes
常见错误
- Truncating a UTF-8 string mid-sequence, producing invalid bytes
- Truncate at character boundaries or use encoding-aware APIs
相关词条
Unicode
Unicode 是国际字符编码标准,为世界上几乎所有书写系统的每个字符分配唯一码点(U+0000 至 U+10FFFF),共 1,114,112 个码点空间。 词汇表
UTF-16
UTF-16 是 Unicode 的变长编码形式,使用 2 或 4 字节表示一个码点,BMP 字符用 1 个 16 位码单元,补充平面字符用代理对(2 个码单元)。 词汇表
ASCII
ASCII(美国信息交换标准代码)是 7 位字符编码标准,定义 128 个字符(0-127),包括英文字母、数字、标点与控制字符。 词汇表
BOM
BOM(字节顺序标记)是 Unicode 字符 U+FEFF,置于文本流开头用于指示编码形式与字节序。 词汇表