Base16编解码

我要提建议

文本与十六进制(Base16)互转;字符编码可选 UTF-8 或 GB2312,另有大小写与 0x / 空格 / 冒号分隔,全程本地处理。

相关工具

这个工具是做什么的

Base16 就是最容易读懂的编码方式——十六进制:每个字节拆成两个字符,取值只有 0-9 与 A-F。因为可以直接逐字节对照,它被广泛用在哈希值展示、抓包排查、内存与协议字段分析。中文文本在转字节前还要先确定字符集:UTF-8 是当下通用选择,中文每字占 3 字节;而老系统中的中文数据(旧版 Windows 软件、部分银行 / 政务 / 短信接口)通常是 GB2312,中文每字 2 字节。同一段中文在两种字符集下得到的十六进制完全不同,所以本工具把字符编码做成显式选项。所有转换都在本机用本地引擎完成,输入内容不会离开你的设备。

使用方法

  1. 编码:选「编码」,粘贴要转换的文本,先选字符编码(UTF-8 或 GB2312),再按需选择大小写与分隔方式。
  2. 解码:选「解码」,粘贴十六进制字符串并选对字符编码;换行、空格、冒号、逗号、连字符与 0x 前缀都会被自动忽略。
  3. 复制结果。若中文显示成乱码或提示编码错误,通常是字符编码选错了,切换后重试即可。

常见问题

Base16 和十六进制、hex 是一回事吗?
是。Base16 是 RFC 4648 里对十六进制表示的正式叫法,和常说的 hex 完全相同:每个字节对应两个字符。
为什么编码后长度正好翻倍?
每个字节 8 位被拆成两个 4 位,每个 4 位对应一个十六进制字符,所以 1 个字节变成 2 个字符。中文的长度取决于字符集:UTF-8 下每字 3 字节(6 个十六进制字符),GB2312 下每字 2 字节(4 个)。
UTF-8 和 GB2312 该选哪个?
先看数据来源:网页、App、现代接口与 JSON 一律是 UTF-8;旧版 Windows 软件、老式银行 / 政务 / 短信接口、早期抓包数据则多为 GB2312 或 GBK。拿不准时可以数中文占几个字节:UTF-8 每字 3 字节,GB2312 每字 2 字节。
为什么有些字用 GB2312 会报错?
GB2312 只收录 6763 个常用简体汉字与 682 个符号,emoji、生僻字与大部分繁体字都不在其中,编码时会指明是哪个字符越界,改用 UTF-8 即可。工具底层的映射来自系统内置的 GBK 表,因此个别后来补充的符号(如 €)也能转换;解码侧本就是 GBK 超集,原文是 GBK 扩展字也能正常显示。
解码支持哪些写法?
不带分隔的连续字符串、空格或冒号分组、逗号或连字符分组、以及每字节带 0x 前缀的写法都支持,也能混合大小写。
为什么会提示长度必须是偶数?
两个十六进制字符才能表示一个字节,奇数长度说明中间漏抄或多了字符。请补齐或检查原文。
解码结果不是文本怎么办?
按 UTF-8 解码失败说明字节不是合法 UTF-8:可能是二进制数据(图片、压缩包片段),也可能是 GB2312 编码的老数据——切换字符编码再试。若两种都失败,请改用 Base64 工具处理二进制。
十六进制是加密吗?
不是。它只是换一种写法展示同样的字节,任何人都能还原。