支持Escape、百分号、十六进制、Unicode转义及BOM标记等多种模式的UTF8编码解码工具,便于开发调试。
工具用的顺手吗?
你的反馈能帮助我们做得更好
概览
了解工具能解决的问题、计算或处理逻辑,以及数据边界。
本工具在两种表示之间转换:一边是可读文本,另一边是同一文本的 UTF-8 字节序列,并以每字节两位十六进制显示。编码时可以输入中文、拉丁字母、数字、标点或 emoji;解码时应输入由 0–9、A–F 组成的十六进制字节。结果取决于输入本身,不需要查询外部数据。
例如,字符“中”的 Unicode 码点是 U+4E2D,对应的 UTF-8 字节才是 E4 B8 AD。这三者不能混用:U+4E2D 是码点写法,\u4E2D 是某些语言或数据格式使用的转义写法,而 E4 B8 AD 才是本页编码结果所展示的字节。
功能边界:页面只做“文本 ⇄ UTF-8 十六进制字节”转换,不生成 %E4%... 形式的 URL 百分号编码,也不处理 0xE4 前缀、\xE4 转义、Unicode 转义或 Base64。
UTF-8 是 Unicode 的变长编码形式。按 RFC 3629,U+0000—U+007F 使用 1 个字节,U+0080—U+07FF 使用 2 个字节,U+0800—U+FFFF 使用 3 个字节,U+10000—U+10FFFF 使用 4 个字节;代理项范围不构成合法的 Unicode 标量值。ASCII 范围的字符在 UTF-8 中保留相同字节值,所以字母 A 是 41,而“中”是三个字节,emoji“😀”是四个字节。
| 文本 | 码点 | UTF-8 十六进制字节 | 字节数 |
|---|---|---|---|
A | U+0041 | 41 | 1 |
é | U+00E9 | C3 A9 | 2 |
中 | U+4E2D | E4 B8 AD | 3 |
😀 | U+1F600 | F0 9F 98 80 | 4 |
编码结果使用大写十六进制,并保证每个字节正好两位;“添加空格”默认开启,会把字节显示成 E4 B8 AD,关闭后则得到 E4B8AD。这个开关只改变显示分隔,不改变字节内容,也不影响解码。
解码会先移除空格、制表符和换行等空白,因此连续写法、空格分组和跨行粘贴可以得到相同结果,十六进制字母也可用小写。但移除空白后的字符数必须为偶数,因为两个十六进制数字表示一个字节。冒号、逗号、百分号以及 0x 不是可识别的分隔符,应先删除。
指南
按步骤完成操作,并通过示例核对输入与结果。
切换到“编码”,在输入区输入或粘贴原始文本。内容变化后结果会自动刷新,无需再点击转换按钮。
保留“添加空格”可获得便于逐字节阅读的结果;若目标系统要求连续十六进制串,可以关闭该选项。两种形式包含的字节完全相同。
确认结果后使用输出区的复制功能。若要验证多语言文本,建议保留空格,先按字符边界检查每组字节,再生成连续形式。
输入 A中😀 后,各字符依次产生 1、3、4 个 UTF-8 字节,因此开启空格时结果为:
41 E4 B8 AD F0 9F 98 80关闭空格后结果为 41E4B8ADF09F9880。切换到“解码”,粘贴任一写法,都应还原为 A中😀。若从日志或协议文档复制字节,可以保留其中的普通空白,但应先去掉地址、行号、冒号、逗号、0x 或 % 等额外标记。
切换到“解码”,输入连续或以空白分隔的十六进制字节,例如 E4 BD A0 E5 A5 BD。
每个字节必须是两位。若有效十六进制字符总数为奇数,应回到来源补齐或删除多余字符,不要靠在开头补零来猜测原数据。
页面会自动显示“你好”。若出现 �、控制字符或与预期不符的文本,应把输入与原始字节逐项比对,并确认来源确实采用 UTF-8。
场景
查看这项工具在不同工作与生活流程中的用法。
开发或测试人员拿到十六进制载荷片段时,可移除非字节标记后解码,确认中文、换行或 emoji 是否按 UTF-8 传输。结果可用于定位“字节已经错误”还是“显示端采用了错误字符编码”。
文本编辑器或十六进制查看器显示原始字节时,可取一小段与本页编码结果对比。相同文本若字节不同,需继续检查文件是否为 GBK、Big5、UTF-16 或其他编码,而不是反复执行 UTF-8 解码。
分别输入 ASCII、带重音拉丁字母、汉字和 emoji,观察 1—4 字节结果,再与对应的 U+... 码点比较,可直观看出“一个字符”并不等于“一个字节”。
问答
集中解答高频疑问与容易混淆的问题。
不是。Unicode 为字符分配码点,UTF-8 则规定如何把这些码点表示成字节序列。本页展示的是 UTF-8 字节的十六进制写法,而不是仅列出 Unicode 码点。
\u4E2D、%E4%B8%AD 或 0xE4 0xB8 0xAD 不能直接解码?因为它们包含不同语法层的标记。本页解码输入只应保留裸十六进制字节与空白;对应“中”的输入应写成 E4 B8 AD 或 E4B8AD。
� 说明什么?通常说明输入字节不是完整、合法的 UTF-8 序列。当前解码方式会用 U+FFFD 替换字符标记部分错误,而不是对所有错误都立即中止;应检查是否丢了续字节、截断了数据,或把其他字符编码误当成 UTF-8。
EF BB BF 为什么没有显示成可见字符?这三个字节在文本开头可表示 UTF-8 BOM。当前解码会按文本解码规则识别开头的 BOM,因此单独解码它通常得到空文本,放在其他文本前也不会显示普通字符。本页不会在编码结果前自动添加 BOM。
须知
使用前了解适用范围、结果限制与必要提醒。
编码只是字符与字节表示之间的转换,不提供加密、保密、签名或完整性校验。十六进制外观看起来不易阅读,也不代表内容受到保护。
[0-9A-Fa-f]。�。一旦替换字符已经进入结果,就不能仅凭该结果推回原始错误字节,应回到未经转换的源数据检查。推荐
查找相关工具、专题与可用的 API 能力。