编码加密 · Unicode / Hex

Hex 编解码

文本/文件↔十六进制

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 99 次使用
文本 / 文件 ↔ 十六进制 · UTF-8 · 全本地
字母 分隔
文本 plain · UTF-8
0 字符 · 0 字节
Hex hexadecimal
0 字节
编辑「文本」→ 实时生成 Hex;编辑「Hex」→ 实时解码 文本
文件 HEXfile to hex · hexdump
点击选择 · 或拖放文件到此处
本地读取,文件内容绝不上传 · 限 10 MB
未选择文件
选择文件后在此显示十六进制内容。大文件仅渲染前 64 KB(完整内容仍可复制)。
示例:点 Hi → 48 69 · 中 → e4 b8 ad · 0x48,0x69 → Hi
就绪 · 输入文本或 Hex 即时互转
第一节

关于本工具

About

调试网络协议时,面对一串 `48 65 6c 6c 6f` 却要手动对照 ASCII 表换算字符,几分钟就耗在无意义的转换上。这个工具将文本或文件的每一个字节直接映射为十六进制表示,反之亦然——输入 `48656c6c6f` 也能还原回原文。转换完全在浏览器本地进行,文件不会被上传,适合处理密钥、协议报文等敏感数据。

使用场景

网络协议字段抓包

凌晨两点,某物联网网关上报的数据包在服务器端解析失败。运维工程师打开 Wireshark 抓取原始字节流,发现第 11-14 字节的十六进制值为 `0x00 0x00 0x03 0xE8`。用本工具将这段 Hex 转成十进制,得到 1000——这正是设备上报的电压毫伏值。对比文档发现,协议中该字段应为小端序,而设备发送的是大端序,定位了通信协议版本不匹配的根源。

固件升级包校验

嵌入式工程师从服务器下载了 2.3 MB 的 .hex 固件文件,烧录前需要确认文件未被篡改或传输损坏。将文件拖入本工具,工具自动显示文件总字节数、校验和区域。手动比对发布公告中提供的 SHA-256 哈希值,发现末尾 4 个字节与官方值不符。重新下载后再次校验,哈希一致,避免了烧录错误固件导致设备变砖的后果。

二进制数据可视化调试

安全研究员在分析一个疑似恶意 PDF 文件时,需要查看文件头部的魔数(Magic Number)。将 PDF 文件拖入本工具,文件内容即刻以十六进制字节流呈现,前 8 个字节 `25 50 44 46 2D 31 2E 34` 清晰可见。对照 ASCII 表逐字节翻译,确认这是 `%PDF-1.4` 的标准文件头,排除了伪装成 PDF 的可执行文件嫌疑。

数据库乱码字段修复

某电商后台导出的用户备注 CSV 文件在 Excel 中显示为 `汉å—` 等乱码。用本工具将乱码字符串转为十六进制 `E6 B1 89 E5 AD 97`,发现这是 UTF-8 编码的 `汉字` 被按 GBK 编码解析的结果。确认编码问题后,在数据库连接字符串中指定 `charset=utf8mb4` 重新导出,数据恢复正常显示,避免了 3000 条客户备注信息的丢失风险。

自定义协议报文构造

硬件测试工程师需要向串口设备发送一条长度为 8 字节的控制指令:`0xAA 0x55 0x01 0x00 0x00 0x00 0x64 0x02`。其中第 4-7 字节为无符号整型参数,代表 100 毫秒的延时。用本工具将十进制 `100` 转为十六进制 `0x00000064`,填入报文对应位置。将整条指令的 Hex 字符串复制到串口调试助手发送,设备正确响应,无需手动计算字节序和进制转换。

第二节

使用指南

Getting Started

使用步骤

  1. 1在「文本」输入框粘贴待转换的字符串,右侧「十六进制」区同步显示对应 hex 编码
  2. 2点击「文件」标签页,上传任意文件(如 .png 或 .txt),页面直接输出文件的十六进制字节流
  3. 3在「十六进制」输入框粘贴 hex 字符串(如 48656c6c6f),右侧「文本」区自动解码为原文
  4. 4点击结果区任意 hex 字节或字符,该段内容即被选中,可 Ctrl+C 复制

输入输出示例

输入输出说明
Hello48656c6c6f常规:纯英文文本编码,验证 ASCII 字符到十六进制的基本转换
你好e4bda0e5a5bd常规:中文字符 UTF-8 编码,验证多字节字符的正确处理
边界:空字符串输入,验证工具对空输入的处理(应返回空而非报错)
A41边界:单字符输入,验证最小有效输入的处理
20边界:空格字符编码,验证空白字符的十六进制表示
Hello World48656c6c6f0a576f726c64易错:含换行符的文本,验证特殊控制字符(0x0A)是否被正确编码
48656c6c6fHello易错:十六进制字符串解码,验证编码与解码互为逆操作

常见错误对照

1.十六进制字符串缺少前缀,被当作普通文本

✗ 错误输入 "48656C6C6F" 期望解码为 "Hello"
✓ 修复输入 "48656C6C6F" 并选择“十六进制→文本”模式

工具默认将输入视为纯文本进行编码;若直接粘贴十六进制串而未切换模式,工具会将其当作普通文本重新编码,而非解码。

2.十六进制串包含空格或换行,解码失败

✗ 错误粘贴 "48 65 6C 6C 6F"(每字节后有空格)
✓ 修复粘贴 "48656C6C6F"(连续无分隔符)

Hex 编码标准要求连续书写,空格/换行不是有效十六进制字符;工具未做自动清理时会导致解析错误或输出乱码。

3.文件编码后大小翻倍,误以为工具损坏

✗ 错误上传 1KB 文本文件,下载得到 2KB 的 .hex 文件后怀疑工具出错
✓ 修复理解 Hex 编码将每个字节(0-255)表示为两位十六进制字符,文件体积必然翻倍

Hex 编码本质是二进制→可打印字符的映射,1 字节→2 字符,这是规范行为,非工具 bug。

4.非 ASCII 字符编码后无法直接还原为原文件

✗ 错误用 Hex 编码一个 UTF-8 中文文件,再解码后得到乱码
✓ 修复确保编解码使用同一字符编码(如 UTF-8),或直接对二进制文件操作

Hex 只处理字节序列,不关心字符编码;若编码时用 UTF-8、解码时用 GBK,字节相同但字符映射不同,结果必乱。

5.十六进制字符串长度非偶数,解码报错

✗ 错误输入 "48656C6C6"(9 个字符,奇数)
✓ 修复输入 "48656C6C6F"(10 个字符,偶数)

每个字节需要 2 个十六进制字符表示;奇数长度无法构成完整字节,工具无法解析。

6.混淆大小写字母,误以为工具区分大小写

✗ 错误输入 "4A6f686e" 解码得到 "John",但认为必须全大写才有效
✓ 修复输入 "4a6f686e"(小写)同样得到 "John"

十六进制数字 A-F / a-f 在编码规范中大小写等价,工具应同时接受。若输出异常,检查输入是否包含非法字符(如 G、Z)。

7.对二进制文件编解码后,文件头/尾多了 BOM 或换行符

✗ 错误用文本编辑器打开 .hex 文件并手动添加/删除内容后解码
✓ 修复始终使用工具的“文件→文件”模式,避免中间编辑引入额外字节

文本编辑器可能自动添加 BOM、换行或空格,这些额外字节会改变原始二进制内容,导致解码后文件损坏。

第三节

工作原理

How It Works

核心公式

hex_str = encode(byte_array) = concat(hex(byte_i) for each byte_i in byte_array)

变量说明

  • byte_array输入文本或文件的字节序列
  • byte_i字节序列中第 i 个字节(0–255)
  • hex(byte_i)将单个字节转为两位十六进制字符串
  • hex_str拼接后的完整十六进制字符串

示例

输入文本 "Hi"(UTF-8 编码),其字节序列为 [72, 105]。编码:72 → 0x48,105 → 0x69,拼接得 "4869"。解码时反向操作:"4869" 每两位一组 → [0x48, 0x69] → 对应字符 'H' 和 'i',还原为 "Hi"。

文本或文件(原始输入)逐字节查表(ASCII/UTF-8↔十六进制)十六进制字符串(输出结果)十六进制字符串(原始输入)逐对解析(两位一组转十进制)原始文本/文件(输出结果)
用户输入 本地处理 输出结果
第五节

常见问题

Q & A
我把一个文本转成十六进制后,怎么转回来?

本工具同时提供「文本→十六进制」和「十六进制→文本」两个方向,在输入框上方切换模式即可。转回来时注意:十六进制字符串必须由 0-9 和 A-F 组成,且字符数为偶数(每两个十六进制数对应一个字节)。如果输入了奇数位或含非法字符,工具会提示格式错误,不会自动截断或补零。

上传文件转十六进制,文件大小有限制吗?

因为本工具完全在浏览器本地运行(FE 实现),不经过服务器,所以限制只取决于浏览器对 File API 的内存处理能力。实测 Chrome 下 50MB 以内的文件能流畅完成转换;超过 100MB 浏览器可能提示页面无响应,建议分片处理或改用桌面工具。没有任何上传行为,隐私安全。

为什么我复制出来的十六进制结果,粘贴到别的地方多了空格?

本工具默认输出的十六进制字符串每两个字符后带一个空格(如 '48 65 6C 6C 6F'),方便阅读。如果目标程序要求纯连续字符串(如 '48656C6C6F'),点击结果区右上角的「复制为连续格式」按钮,会自动去掉所有空格。两种格式都支持反向解码,工具会智能识别并自动去除空格。

十六进制和 ASCII 是什么关系?为什么字母 A 转出来是 41?

ASCII 是字符与数字的映射表,十六进制只是数字的一种写法。字母 'A' 在 ASCII 表中对应十进制 65,写成十六进制就是 41。本工具转换时就是查这个标准表,所有英文字母、数字、标点都按 ASCII 转,中文字符则按 UTF-8 编码转成多个字节。所以一个中文字会输出 3 对十六进制数(如 '中' → 'E4 B8 AD')。

我转换一个图片文件,出来的十六进制全是乱码,正常吗?

完全正常。图片是二进制文件,转成十六进制就是原始字节的十六进制表示,不是文本可读的内容。你可以把结果复制到十六进制编辑器里修改图片的元数据或像素值,但直接看文本区域就是乱码。如果你需要查看图片的文本描述(如 EXIF 信息),请使用专门的 EXIF 查看工具。

为什么我转一个很大的文件时,浏览器标签页卡住了?

本工具处理大文件时会在主线程进行转换,文件过大会阻塞 UI 渲染导致「卡住」。建议处理 20MB 以下文件;如果必须处理大文件,可以先将文件分割成多个小块,分别转换后拼接结果。或者使用电脑端 Chrome/Edge 浏览器,它们对大文件内存管理更好。后续版本会考虑用 Web Worker 异步处理来避免卡顿。

十六进制和二进制、十进制怎么互转?这个工具能转吗?

本工具专做「文本/文件 ⇄ 十六进制」,不直接支持二进制或十进制转换。但你可以间接实现:先把文本转成十六进制(得到一串十六进制数),然后每两位一组用计算器转成十进制或二进制。如果你需要频繁做进制转换,推荐使用专门的进制转换工具站,本工具定位是文本/文件的编解码,不是通用进制计算器。

我转出来的十六进制结果,为什么和别人转的不一样?

原因通常是编码不一致。比如同样的汉字「测」,如果原始文本是 UTF-8 编码,转出来是 'E6 B5 8B';如果是 GBK 编码,转出来是 'B2 E2'。本工具默认使用 UTF-8 编码,如果你从某些旧系统或 Windows 记事本另存为 ANSI 的文件里复制内容,请先确认原始编码。建议统一使用 UTF-8 后再转换,结果才能和他人一致。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭