Hex 编码 / 解码

将文本或文件转换为十六进制并还原。可选字符集和大小写;解码时支持空格、冒号、连字符或 0x 前缀分隔的 hex。在浏览器中运行。

输入内容和文件始终留在浏览器中

输入要编码的文本,或粘贴十六进制数据进行解码,也可以在下方拖放文件。

拖放文件到此处

如果选择了文件,文本输入将被忽略。

解码选项

编码或解码结果将显示在这里。

本页内容

把文本或任意文件转换为十六进制字符串,并把 hex 转储解码回文本或字节。转换由 Rust 编译的 WebAssembly 在浏览器中完成,文件内容不会上传。

详细功能

每个字节变成两个十六进制数字,因此输出能准确显示字符串包含哪些字节,便于检查 UTF-8 序列、BOM、换行符和不可见字符。文本按所选字符集(UTF-8、UTF-16LE、UTF-16BE、ASCII 或 ISO-8859-1)转换,Hex 大小写 可在 小写 和 大写 数字之间切换。

解码器接受从调试器、抓包结果和证书中常见的各种写法:连续的(48656c6c6f)、用空格或换行分隔的、用冒号或连字符分隔的(48:65:6c、48-65-6c),以及每个字节带 0x 前缀的(0x48 0x65)。在 解码选项 中可以逐项关闭这些宽松规则以进行严格校验。数字个数为奇数或出现非十六进制字符时会报错,并在输入框中选中出错的字符。

文件可以选择或拖到页面上,在 Web Worker 中读取,带进度条和 取消 按钮。如果解码出的字节在所选字符集中不是有效文本(例如二进制转储),工具会提示,并可用 下载 保存原始字节。

实用示例

文本转 hex:Hi! 变为 486921;使用 UTF-8 时,Привет 变为 d09fd180d0b8d0b2d0b5d182(12 字节,每个西里尔字母两个字节)。

字符集与字节序:字母 A 在 UTF-16LE 中是 4100,在 UTF-16BE 中是 0041。

带格式的 hex:48:65:6c:6c:6f、48-65-6c-6c-6f 和 0x48 0x65 0x6C 0x6C 0x6F 都解码为 Hello。

校验:48656c6c6(九位数字)会因被截断而被拒绝,4865zz 则提示第 5 个位置有非法字符。

如何使用此工具

  1. 输入文本或选择文件

    在 文本 中输入或粘贴要编码的文本或要解码的 hex 字符串,也可以把文件拖到页面上或点击 选择文件。

  2. 设置字符集和大小写

    选择把文本转换为字节所用的 文本字符集,以及输出的 Hex 大小写。在 解码选项 中保留或取消 忽略空白字符、允许分隔符(: 和 -) 和 允许 0x 前缀。

  3. 编码或解码

    点击 编码 得到 hex,或点击 解码 把 hex 还原为文本或字节。输入无效时,错误信息会给出错误字符的位置。

  4. 复制或下载

    复制 将结果放入剪贴板,下载 将其保存为文件;二进制结果只能下载。

提示和最佳实践

  • Hex 会让数据大小翻倍:1 个字节变成 2 个字符。需要紧凑传输时用 Base64,hex 适合查看和比较字节。
  • 想找出隐藏的 BOM 或不换行空格,可将文本按 UTF-8 编码:efbbbf 是 BOM,c2a0 是不换行空格。
  • 哈希值(SHA-256、MD5)也是 hex:解码得到的是原始字节而不是可读文本,请使用 下载。
  • 需要确认输入是纯连续 hex 时,取消 允许分隔符(: 和 -) 或 允许 0x 前缀:此时 0x48 会在第 2 个位置报错。
  • 解码时不区分大小写:D0 9f 和 d0 9F 得到同一个字母 П。