跳到正文
编写
登录

Unicode 与 UTF-8:修订间差异

更多
迷雾样式迁移​(留言 | 贡献)
重排科普目录与分类页面;保留工具索引和学习资源
 
迷雾样式迁移​(留言 | 贡献)
重写科普正文:定义、结构、原理与资料表
 
第1行: 第1行:
Unicode 给字符分配码点;UTF-8 是把码点写成字节的一种编码。二者不是两个可以互换的“字符表”。<ref name="unicode">[https://www.unicode.org/faq/utf_bom.html Unicode 联盟,《UTF-8、UTF-16、UTF-32 与 BOM》,英文]</ref>
Unicode 是字符编码标准,为文字、符号和控制字符分配码位。码位通常写作 <code>U+</code> 加十六进制数字;UTF-8 是将 Unicode 码位编码为一至四个字节的可变长度格式。字符、码位、字形和字节是四个不同概念。


== 码点与字节 ==
== UTF-8 编码 ==
码点通常写作 <code>U+</code> 加十六进制数。例如汉字“汉”的码点是 <code>U+6C49</code>,按 UTF-8 编码后是三个字节 <code>E6 B1 89</code>。码点和每个字节的十六进制写法都可能出现在谜题中,但必须先分清所指的单位。UTF-8 使用一至四个字节编码一个 Unicode 标量值;ASCII 范围内的字符保持单字节表示。<ref>[https://mirrors.nju.edu.cn/rfc/rfc3629.html IETF RFC 3629《UTF-8》,南京大学开源镜像,英文,第 3 节]</ref>
{| 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"
同一个字形可能涉及不同码点或组合形式;不可见字符也会占有码点。显示为“乱码”不一定说明原文被加密,更常见的原因之一是写入和读取时选用了不同字符编码。中文环境还可能出现 GB 18030;它与 UTF-8 是不同的字节映射,不能把一串字节在两套编码间直接混读。<ref>[https://openstd.samr.gov.cn/bzgk/std/newGbInfo?hcno=A1931A578FE14957104988029B0833D3 国家标准 GB 18030-2022《信息技术 中文编码字符集》,标准题录]</ref>
! 字符 !! 码位 !! UTF-8 字节
 
|-
== 相关条目 ==
| <code>A</code> || U+0041 || <code>41</code>
[[ASCII编码]] · [[Base16]] · [[Unicode 字符]]
|-
| <code>中</code> || U+4E2D || <code>E4 B8 AD</code>
|-
| <code>😀</code> || U+1F600 || <code>F0 9F 98 80</code>
|}
组合附加符号会使一个可见字形由多个码位构成;UTF-8 的字节数因此不能直接当作文字长度。另见 [[Unicode 字符]]。


== 参考资料 ==
== 参考资料 ==
<references />
* [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 字符。

参考资料

返回文字与密码

迷雾 Wiki
搜索迷雾 Wiki
阅读设置