跳到正文
BCBinary Code Translator
菜单

UTF-8 字节工具

文本 ↔ 十六进制转换器

把任意 Unicode 文本编码为 UTF-8 十六进制字节,或把十六进制字节序列解码为可读文本。

全部转换都在浏览器本地完成,文本和字节数据不会上传。

十六进制字节

尚无结果

UTF-8 字节数

尚无结果

Unicode 字符数

尚无结果

文本与十六进制转换的含义

文本和十六进制是同一组底层字节的两种观察方式。人通常阅读字符,而协议、调试器、文件格式和底层文档更常用两位十六进制数字表示一个字节。本工具不会把文本简单当作 ASCII,而是先按 UTF-8 编码,再输出 00 到 FF 的字节值。反向转换时,会先解析字节,再进行严格 UTF-8 解码。

这对中文、重音字符和表情尤其重要。它们往往需要 2、3 或 4 个 UTF-8 字节。正确的结果应与网络请求、UTF-8 文件、数据库字段或程序中的字节数组一致,而不是 JavaScript 字符编码值的简单拼接。

使用方法

先选择方向,再输入内容并执行转换。分隔符和大小写设置只影响文本转十六进制。

  1. 需要查看文本对应字节时选择“文本转十六进制”;已有字节时选择“十六进制转文本”。
  2. 输入文本时可使用任意 Unicode 字符;输入十六进制时,每个字节使用两位数字,可用空格、冒号、逗号、分号、连字符或下划线分隔。
  3. 编码时可选择大写或小写,并选择紧凑、空格分隔或冒号分隔格式。
  4. 点击“计算”,检查结果以及 UTF-8 字节数和 Unicode 字符数。
  5. 复制结果用于代码、文档或抓包分析;处理未知数据时建议保留原始字节用于核对。

UTF-8 文本与十六进制示例

这些案例说明“字符”和“字节”并不是一一对应。

输入 输出 说明
Hello 48 65 6C 6C 6F 基础拉丁字母各占一个 UTF-8 字节。
café 63 61 66 C3 A9 é 使用 C3 A9 两个字节。
你好 E4 BD A0 E5 A5 BD 每个汉字通常占三个 UTF-8 字节。
👋 F0 9F 91 8B 该表情显示为一个符号,但编码为四个字节。
00 41 0A NUL、A、换行 控制字节可能不可见,或会改变输出布局。
C3 28 错误 C3 需要合法续字节,28 不符合 UTF-8 规则。

支持的输入格式

文本模式使用浏览器 TextEncoder 按 UTF-8 编码,保留换行、制表符、组合字符、表情和多语言文字。字符数按 Unicode 码点统计,字节数按实际 UTF-8 数据统计。一个可见字形仍可能由多个码点组成。

十六进制模式按字节处理。最终每个字节必须恰好两位。支持紧凑形式、单个 0x 前缀、每字节 0x 前缀及常见分隔符。去除格式后若长度为奇数,会因为缺少半个字节而被拒绝。

  • 允许 0-9、A-F 或 a-f。
  • 0x 前缀可省略,也可写在每个字节前。
  • 严格解码不会用替换字符掩盖损坏的 UTF-8。
  • 空输入得到空输出,不会调用服务器。

转换算法

文本转十六进制时,TextEncoder 生成 Uint8Array。每个字节转为 16 进制并补足两位,再按所选分隔符拼接。

十六进制转文本时,工具先移除允许的格式字符,校验字符集合和偶数长度,再每两位解析为一个字节。TextDecoder 使用 fatal 模式,非法起始字节、缺失续字节或孤立续字节都会直接报错。

本页不会猜测 UTF-16、Latin-1、GBK 等编码。相同字节在不同编码下可能表示不同文本,因此明确固定 UTF-8 更可靠。

实际用途

当系统展示原始字节而不是文字时,十六进制视图非常有用。

调试 API 数据

核对请求体中的空格、换行、非 ASCII 名称或表情是否按预期编码。

检查文件与数据库

查看二进制文件、配置导出或数据库转储中的 UTF-8 文本片段。

生成代码字节常量

为测试、固件、协议示例、SQL 十六进制字面量或字节数组生成数据。

学习 Unicode

直观看到字符数、码点数和 UTF-8 字节数之间的区别。

常见错误与边界

多数问题来自混淆字符、码点、字节,或输入实际采用了其他编码。

十六进制位数为奇数

一个字节必须有两位,应补回缺失的前导零或从源数据恢复缺失半字节。

使用了错误编码

UTF-16、Windows-1252、Latin-1 或 GBK 字节不一定能按 UTF-8 解码。

不可见控制字符

NUL、制表符和换行可以正确解码,但可能看不见或改变排版。

视觉相同但字节不同

不同规范化形式或组合音标可能显示相同,却产生不同字节。

与相关工具的区别

应根据需要观察的表示形式选择工具。

文本转二进制

展示相同 UTF-8 字节的逐位形式;十六进制更紧凑,二进制更适合观察单个位。

ASCII 表

只覆盖前 128 个码点,不能说明完整 UTF-8 多字节序列。

Base64 编码

Base64 适合传输任意字节;十六进制更便于人工检查字节边界。

进制转换器

进制转换器把输入当作一个整数,本工具把每两位当作有顺序的字节。

常见问题

一个字符是否总是对应两位十六进制?

不是。两位十六进制表示一个字节。ASCII 字符通常一个字节,中文和表情可能需要多个字节。

没有空格的十六进制可以解码吗?

可以,只要总位数为偶数。也支持空格、冒号、逗号、分号、连字符、下划线和 0x 前缀。

为什么合法十六进制仍提示 UTF-8 错误?

十六进制格式正确不代表字节符合 UTF-8 的起始字节和续字节规则。

是否支持中文和表情往返?

支持。浏览器原生 UTF-8 编解码可保留合法 Unicode 文本。

这和十六进制数字转十进制一样吗?

不一样。本页按字节序列解释为文本,数字进制转换则把整串当作一个整数。

输入会上传吗?

不会,编码、校验和解码都在浏览器本地执行。

相关工具

查看全部工具

Cookie 偏好设置

管理你的 Cookie 偏好。必要 Cookie 无法关闭。

必要 Cookie

必要

用于语言选择、隐私选择和网站基础功能,属于必需项。

Cookie: NEXT_LOCALE

分析 Cookie

可选的分析 Cookie 可帮助我们了解访问情况并改进网站。

Cookie: _ga, _gid, _gat, _clck, _clsk

广告 Cookie

可选的广告 Cookie 可能用于展示相关广告并衡量广告效果。

Cookie: __gads, _gcl_au, IDE