十六进制编码/解码(二进制)
100% 客户端处理(无需服务器上传)。将二进制文件转换为十六进制文本(纯文本、0x…、C语言\xHH或%HH格式),并将十六进制文本解码回文件,支持严格验证、分隔符处理和可预测的输出格式化。
功能特点
- 100% 客户端处理(无需服务器上传)。
- 通过拖放区域上传并批量处理多个文件(支持多文件)。
- 两种操作:编码文件→十六进制文本,或解码十六进制文本→文件。
- 十六进制输出格式:纯文本(deadbeef)、0x…前缀、C语言转义(\xHH)和百分比(%HH)。
- 字母大小写控制:十六进制数字小写或大写。
- 用于可读性的字节分隔符:无、空格、冒号(:)、短横线(-)、下划线(_)、逗号(,)。
- 仅编码时的换行:每行换行字节数(0表示禁用换行)+ 可选的行分隔符(LF或CRLF)。
- 仅编码时的切换选项:插入最终换行符;为0x风格输出可选每字节添加0x前缀(0xDE 0xAD …)。
- 仅解码时的解析控制:接受0x前缀、接受\xHH转义、接受%HH编码、允许分隔符/空白字符、忽略非十六进制字符以及奇数长度处理(报错或用0左填充)。
- 严格验证模式,可及早拒绝格式错误的输入,而非尽力解析。
使用方法 for hex-binary-encoder
拖放文件或粘贴十六进制文本
对于编码,将一个或多个二进制文件拖放到拖放区域。对于解码,将十六进制文本粘贴到输出编辑器(或拖放包含十六进制的.hex/.txt文件)。
选择操作并运行
选择操作:“编码文件→十六进制”或“解码十六进制→文件”,然后点击相应的按钮(编码/解码)。根据需要配置选项:格式(纯文本/0x/\xHH/%HH)、大小写、分隔符、换行+行分隔符(编码),或接受切换+分隔符处理+奇数长度规则(解码)。
复制或下载结果
如果您进行了编码,请从编辑器中复制生成的十六进制文本或将其作为文本输出下载。如果您进行了解码,请下载重建的二进制文件(工具会尽可能去除.hex后缀,并回退为.bin)。
技术规格
执行模型
此工具完全在您的浏览器中运行,不会将您的输入上传到服务器。
| 方面 | 详情 |
|---|---|
| 运行时 | 100% 客户端处理(无需服务器上传)。 |
| 操作范围 | 在同一页面进行编码(二进制文件→十六进制文本)和解码(十六进制文本→二进制文件)。 |
| 输入 | 编码:二进制(文件/Blob/Uint8Array/ArrayBuffer/TypedArray)。解码:文本(十六进制字符串,可包含可选标记和分隔符)。 |
| 输出 | 编码:文本(十六进制)。解码:字节(可下载的二进制文件)。 |
| 限制 | 约1–2MB字符;约25000毫秒超时 |
| 数据保留 | 所有处理均在您的浏览器本地进行(无上传) |
迷你示例
用于说明两种操作及常见格式的小例子。
编码(二进制字节):48 65 6c 6c 6f 0a
输出(纯小写):48656c6c6f0a
解码(十六进制文本):48 65 6c 6c 6f 0a
结果(文件字节):48 65 6c 6c 6f 0a
错误与边界情况
在十六进制文本与原始字节之间转换时的典型故障,以及用户界面选项如何影响它们。
| 现象 | 可能原因 | 检查事项 |
|---|---|---|
| 编码提示上传文件 | 您向编码操作提供了文本输入 | 本工具编码二进制数据。对于十六进制文本输入,请切换到解码;对于编码,请上传文件或字节。 |
| 解码错误:无效十六进制/格式错误的标记 | 输入包含非十六进制字符或您禁用的标记样式 | 酌情启用“接受0x前缀”/“接受\xHH转义”/“接受%HH编码”;决定是否允许分隔符/空白字符。 |
| 解码因分隔符或空白字符失败 | 存在分隔符但被禁止(或严格模式拒绝它们) | 启用“允许分隔符/空白字符”;如需严格解析,请保持“忽略非十六进制字符”关闭,并依赖显式的标记接受设置。 |
| 十六进制数字为奇数个 | 十六进制流被截断或缺少半字节 | 将“奇数十六进制数字”设置为“错误”以快速失败,或设置为“左侧补0”以接受奇数长度输入。 |
| 输出大小意外或字节不匹配 | 忽略非十六进制字符移除了有意义的字符,或严格模式关闭导致解析为尽力而为 | 当正确性重要时,使用“严格验证”;如果期望只有格式良好的标记,请禁用“忽略非十六进制字符”。 |
| 输出换行/新行不符合预期(编码) | 启用了每行字节数、行分隔符或最终换行符设置 | 将“每行换行字节数”设为0,根据需要选择LF或CRLF,并切换“插入最终换行符”。 |
命令行替代方案
对于自动化、持续集成或敏感数据,建议使用本地命令行工具。以下示例是规范且普遍可用的。
Linux/macOS
将文件编码为纯十六进制(xxd)
xxd -p -c 256 input.bin > output.hex.txt以纯十六进制格式打印文件(不含0x/\x标记)。使用-c参数控制行宽。
将纯十六进制解码回文件(xxd)
xxd -r -p output.hex.txt > restored.bin将纯十六进制反向转换为原始字节。如果十六进制文本包含分隔符或前缀,请先进行规范化处理。
Node.js
将文件编码为十六进制(Node Buffer)
node -e "const fs=require('fs');const b=fs.readFileSync('input.bin');process.stdout.write(b.toString('hex'))" > output.hex.txt输出连续的小写十六进制。如需分隔符或换行,请自行添加格式。
将纯十六进制文本解码为文件(Node Buffer)
node -e "const fs=require('fs');const hex=fs.readFileSync('output.hex.txt','utf8').trim();fs.writeFileSync('restored.bin',Buffer.from(hex,'hex'));"仅解析纯十六进制。解码前请移除0x/\x/%标记和分隔符。
使用场景
调试二进制负载
- 将小型二进制文件转换为可读的十六进制,用于错误报告和审查
- 通过将两个二进制输出转换为规范化的十六进制表示进行比较
跨工具互操作性
- 生成带0x前缀或分隔符的十六进制,以匹配下游工具的预期格式
- 解码包含C风格\xHH标记或百分比风格%HH字节的十六进制转储
CI固定数据和测试向量
- 将小型二进制固定数据存储为十六进制文本,便于代码审查时进行差异比较
- 当测试输入格式错误时,使用严格验证实现快速失败
字节与表示法教学
- 展示相同字节如何表示为纯十六进制、0x前缀标记或\xHH转义序列
- 演示为何分隔符和奇数长度处理是明确的解析选择
❓ Frequently Asked Questions
是否有公开API?
API。处理过程是本地还是远程?
能否用于处理机密信息(API密钥、凭证、专有文件)?
为何解码会失败并提示“无效十六进制”或“输入格式错误”?
Pro Tips
为进行稳定比较,请使用固定格式(纯文本)、固定大小写且无分隔符进行编码;然后仅出于可读性考虑添加分隔符或换行。
解码代码或日志中的转储时,启用预期的令牌接受选项(0x、\xHH、%HH)并允许分隔符/空白字符,以避免手动清理。
当正确性比尽力恢复更重要时,请使用“严格验证”(并考虑禁用“忽略非十六进制字符”)。
将输入控制在约1–2MB以下,并对大文件或CI流水线使用本地CLI工具,以避免浏览器限制或超时。
Additional Resources
Other Tools
- CSS 美化器
- HTML 美化器
- JavaScript 美化器
- PHP 美化器
- 颜色选择器
- 精灵图提取器
- Base32 二进制编码器
- Base32 解码器
- Base32 编码器
- Base58 二进制编码器
- Base58 解码器
- Base58 编码器
- Base62 二进制编码器
- Base62 解码器
- Base62 编码器
- Base64 二进制编码器
- Base64 解码器
- Base64 编码器
- 十六进制解码器
- 十六进制编码器
- C# 格式化器
- CSV 格式化器
- Dockerfile Formatter
- Elm 格式化器
- ENV 格式化器
- Go 格式化器
- GraphQL 格式化器
- HCL 格式化器
- INI 格式化器
- JSON 格式化器
- LaTeX 格式化器
- Markdown 格式化器
- Objective-C 格式化器
- Php Formatter
- Proto 格式化器
- Python 格式化器
- Ruby 格式化器
- Rust 格式化器
- Scala 格式化器
- Shell 脚本格式化器
- SQL 格式化器
- SVG 格式化工具
- Swift 格式化工具
- TOML 格式化工具
- Typescript Formatter
- XML 格式化工具
- YAML 格式化工具
- Yarn 格式化工具
- CSS 压缩器
- Html Minifier
- Javascript Minifier
- JSON 压缩器
- XML 压缩器
- HTTP 头部查看器
- PDF 转文本
- 正则表达式测试器
- 搜索引擎排名检查器
- Whois 查询