发布日期:
2025-05-25
更新日期:
2025-05-25
文章字数:
333
阅读时长:
1 分
阅读次数:
UTF-8
UTF-8
- 描述
- 使用变长 (1-4) 个字节表示
- 字节数与 Unicode 编号大小相关
- UTF-8 编码
- 编码范围与二进制格式
- 编号范围
- 0x00 ~ 0x7F (0~127)
- 0x80 ~ 0x7FF (128~2047)
- 0x800 ~ 0xFFFF (2048~65535)
- 二进制格式:1110xxxx 10xxxxxx 10xxxxxx
- 0x10000 ~ 0x10FFFF (65536 以上)
- 二进制格式:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
- 说明
- x 表示可用的二进制位
- 每个字节开头的 1 或 0 是固定的
- 小于 128 的编号 (与 ASCII 码一样)
- 其他编号的第一个字节有特殊含义
- 最高位有几个连续的 1,就表示用几个字节表示
- 其他字节都以 10 开头
- 编码过程
- 步骤
- 将 Unicode 编号看作整数
- 转化为二进制形式 (去掉高位的 0)
- 将二进制位从右向左依次填入对应的二进制格式 x 中
- 填完后,如果对应的二进制格式还有没填的 x,则设为 0
- 示例:“马”的 Unicode 编号是 0x9A6C,整数编号是 39532
- 将二进制位填入 1110xxxx 10xxxxxx 10xxxxxx 格式
- UTF-8 编码的十六进制表示:0xE9A9AC
- 特点
- 兼容 ASCII
- 对大部分中文而言,一个中文字符需要用三个字节表示