Unicode 与 UTF-8:修订间差异
更多
重排科普目录与分类页面;保留工具索引和学习资源 |
重写科普正文:定义、结构、原理与资料表 |
||
| 第1行: | 第1行: | ||
Unicode | Unicode 是字符编码标准,为文字、符号和控制字符分配码位。码位通常写作 <code>U+</code> 加十六进制数字;UTF-8 是将 Unicode 码位编码为一至四个字节的可变长度格式。字符、码位、字形和字节是四个不同概念。 | ||
== | == UTF-8 编码 == | ||
{| class="wikitable" | |||
! 码位范围 !! 字节数 !! 首字节形式 | |||
|- | |||
| U+0000—U+007F || 1 || <code>0xxxxxxx</code> | |||
|- | |||
| U+0080—U+07FF || 2 || <code>110xxxxx</code> | |||
|- | |||
| U+0800—U+FFFF || 3 || <code>1110xxxx</code> | |||
|- | |||
| U+10000—U+10FFFF || 4 || <code>11110xxx</code> | |||
|} | |||
多字节序列的后续字节均以 <code>10</code> 开头。U+D800—U+DFFF 是代理码位,不作为独立 Unicode 字符编码;超过 U+10FFFF 的数值也不属于 Unicode 码位。 | |||
= | {| class="wikitable" | ||
! 字符 !! 码位 !! UTF-8 字节 | |||
|- | |||
| <code>A</code> || U+0041 || <code>41</code> | |||
|- | |||
| <code>中</code> || U+4E2D || <code>E4 B8 AD</code> | |||
|- | |||
| <code>😀</code> || U+1F600 || <code>F0 9F 98 80</code> | |||
|} | |||
组合附加符号会使一个可见字形由多个码位构成;UTF-8 的字节数因此不能直接当作文字长度。另见 [[Unicode 字符]]。 | |||
== 参考资料 == | == 参考资料 == | ||
* [https://www.unicode.org/faq/utf_bom.html Unicode 联盟,《UTF-8、UTF-16、UTF-32 与 BOM》,英文] | |||
* [https://mirrors.nju.edu.cn/rfc/rfc3629.html IETF RFC 3629《UTF-8》,南京大学开源镜像,英文,第 3 节] | |||
[[工具和科普/文字与密码|返回文字与密码]] | [[工具和科普/文字与密码|返回文字与密码]] | ||
2026年10月14日 (三) 10:14的最新版本
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 字符。