文本转十六进制转换工具
输入文本,即可查看其 UTF-8 字节的十六进制形式;或粘贴十六进制,即可读出它所拼出的文本。带重音符号的字母和表情符号都能正确地往返转换,您还可以选择带空格、连续排列或带 0x 前缀的输出,字节数会一并显示。免费,无需注册,转换在您的浏览器中完成。
转换方向
十六进制输出分组
如何使用文本转十六进制转换工具
- 1. 选择方向。 自动检测只会解码明显是十六进制的输入,即以空格分隔的两位字节(
48 65 6c)或带 0x 前缀的字节;其他内容都会被编码。文本 → 十六进制和十六进制 → 文本会强制指定方向,结果标题会说明实际进行的是哪种转换。 - 2. 选择十六进制分组。 带空格分隔(
48 65)、连续排列(4865)或带 0x 前缀(0x48 0x65)。这只影响文本转十六进制的输出。 - 3. 输入或粘贴。 结果和字节数会随您的输入实时显示。
- 4. 复制。 复制结果会复制输出;清除会清空输入框。
文本如何变成十六进制
计算机以字节的形式存储文本,一个字节是八位二进制数,恰好对应两位十六进制数字,因为每位十六进制数字代表四位二进制数。本工具首先按 UTF-8 对您的文本进行编码(RFC 3629),每个字符占用一到四个字节,然后将每个字节写成两位小写十六进制数字。普通 ASCII 字符只占一个字节,并保持熟悉的数值,因此 A 为 41。其他字符占用的字节更多:
| 字符 | 码位 | UTF-8 字节(十六进制) | 字节数 |
|---|---|---|---|
| A | U+0041 | 41 | 1 |
| é | U+00E9 | c3 a9 | 2 |
| ☕ | U+2615 | e2 98 95 | 3 |
| 😀 | U+1F600 | f0 9f 98 80 | 4 |
这就是为什么十六进制输出可能比文本更长,也解释了它为何不同于 ASCII 转换工具 给出的十进制字符编码:é 是单个码位 233,但对应的是两个字节 c3 a9。
示例
输入
Hello, World!
带空格分隔
48 65 6c 6c 6f 2c 20 57 6f 72 6c 64 21
连续排列
48656c6c6f2c20576f726c6421
带 0x 前缀
0x48 0x65 0x6c 0x6c 0x6f 0x2c 0x20 0x57 0x6f 0x72 0x6c 0x64 0x21
大小
13 字节
反向转换时,63 61 66 c3 a9 解码为 café,e2 98 95 解码为 ☕。解码时,空格、逗号、换行符和 0x 前缀都会被忽略,因此您可以直接粘贴来自调试器、数据包转储或源代码的十六进制;剩下的内容必须是成对的十六进制数字。
读懂错误与异常结果
- “输入内容包含非十六进制数字的字符。” 除分隔符和
0x外,输入中含有 0–9 和 a–f(大小写均可)之外的字符。 - “十六进制输入的位数为奇数。” 每个字节需要两位数字,因此缺少或多出一位数字都会使位数变为奇数。请检查是否丢失了前导零(
5应为05)。 - 替换字符(�)。 不是有效 UTF-8 的字节(例如单独的
ff)会被解码为替换字符,而不会报错。如果您期望得到文本,这些数据可能是其他编码,或者根本不是文本。 - 自动检测需要分隔符才能识别十六进制。 像
cafe、dead或2024这样的单串内容,既可能是单词或数字,也可能是十六进制,因此会被当作文本编码。连续排列的十六进制(如48656c6c6f)同样会被当作文本:请为其选择十六进制 → 文本,或用空格分隔字节。 - 输出为小写。 如果您的目标场景需要大写,请在编辑器中更改大小写。
您需要哪个工具?
| 同样的文本“Hi” | 工具 |
|---|---|
48 69 — 十六进制字节 | 本页工具 |
01001000 01101001 — 8 位二进制字节 | 二进制翻译工具 |
72 105 — 十进制字符编码,并附 ASCII 表 | ASCII 转换工具 |
SGk= — Base64、URL 编码、HTML 实体 | 文本编码与解码工具 |
| 在不同进制之间转换数字,例如将 255 转为 FF | 进制转换器 |
常见问题
- 如何将文本转换为十六进制?
- 将方向设为“文本 → 十六进制”(或保持“自动检测”),然后输入或粘贴文本。每个字符都会被编码为 UTF-8 字节,每个字节显示为两位十六进制数字,因此 Hi 会变为 48 69。
- 如何将十六进制转换为文本或 ASCII?
- 将方向设为“十六进制 → 文本”,然后粘贴十六进制。空格、逗号、换行符和 0x 前缀都会被忽略;剩余的数字必须是偶数个。字节会按 UTF-8 解码,对于普通 ASCII 字节,结果正好是 ASCII 文本。
- 有哪些分组格式可用?
- 带空格分隔(48 65)、连续排列(4865)和带 0x 前缀(0x48 0x65)。选择十六进制 → 文本时,三者解码回来的结果完全相同(自动检测能识别带空格分隔和带 0x 前缀的形式,但会把连续排列的十六进制当作文本),因此请按目标场景选择:阅读时用带空格分隔,代码字符串用连续排列,源代码用带前缀的形式。
- 转换工具使用哪种编码?
- UTF-8。ASCII 字符各占一个字节;带重音符号的字母、符号和表情符号占用两到四个字节。UTF-16 或 Latin-1 等其他编码会为非 ASCII 文本生成不同的字节。
- 为什么我的十六进制被编码而不是解码?
- 自动检测只会解码以空格分隔的两位字节或带 0x 前缀的字节,因为像 cafe 或 2024 这样的单串内容同样可能是单词或数字。像 48656c6c6f 这样的连续排列十六进制会被当作文本编码;请将方向切换为十六进制 → 文本来解码。
- 为什么解码后的文本中出现 �?
- 您粘贴的字节不是有效的 UTF-8。对于每个无效序列,工具会显示替换字符,而不会猜测为其他编码。
- 我的文本会被发送到服务器吗?
- 不会。转换使用浏览器内置的 TextEncoder 和 TextDecoder,您输入的任何内容都不会离开您的设备。