Hex / Unicode
字符在计算机里最终都是数字:文本按 UTF-8 存成一串字节,写成十六进制就是 Hex;每个字符在 Unicode 里的编号写成反斜杠加 u 的四位十六进制,就是它的码点转义。这页提供两套互转,把看得见的人话和程序里那串数对上。
调试时看到一串十六进制想知道是哪个字、源码里一个 Unicode 转义要还原成汉字、检查一段文本的真实字节——第一个标签处理文本与十六进制的来回,第二个标签处理文本与 Unicode 转义的来回。
Hex 标签按 UTF-8 处理,转出的就是这段文字真实的字节;Unicode 标签只把非 ASCII 字符转成转义形式,字母数字标点原样留着,符合脚本里字符串转义的常见形态。
怎么用
- 选标签上方两个标签:「文本 ↔ 十六进制 (Hex)」和「文本 ↔ Unicode (\uXXXX)」,切标签会先按「转码」方向跑一次。
- 输入把内容放进中间输入框(占位「输入文本」)。转码时放文字,反转时放十六进制串或转义串。
- 转码点「转码 →」把输入按当前标签规则编成 Hex 或 Unicode 转义,结果显示在下方「结果」框。
- 反转点「← 反转」把输入解回文字:Hex 下会先清掉 0x 和非十六进制字符,位数凑不成偶数会提示「十六进制位数需为偶数」。
- 接力或复制点「结果转输入」把结果搬回输入框方便反向再转,点「复制」拷走当前结果。
示例
工具(Hex 标签 · 点「转码 →」)
e5 b7 a5 e5 85 b7
「工具」的 UTF-8 是 6 个字节,每字节写成两位十六进制、用空格分隔;切到 Unicode 标签转码则得到 \u5de5\u5177。
深入一点
Hex 是 UTF-8 字节,不是字符编码
一个中文在这里通常是三组十六进制(3 字节),别按「一个字符两位」去预期。它是这段文字真实的存储字节,不是 GBK 码,也不是区位码。
想知道一段文字真实占多少存储,转成十六进制去数字节最直观,远比目测字符数靠谱;也能顺带看清有没有混进看不见的全角空格。
只转非 ASCII,还有 UTF-16 的坑
Unicode 标签把码点大于 127 的字符转成反斜杠 u 加四位十六进制,ASCII 保持原样。对超出基本多文种平面的字符(比如部分 emoji),它会按代理对拆成两段转义,因为这种写法本身就是 UTF-16。
所以脚本里那些写成转义的中文字,粘进第二个标签反转,就还原成了正常汉字,读源码时不必对着码点表硬认。
反转 Hex 时的宽容与严格
输入里可以带 0x、空格或逗号,反转前会被清掉;但清完之后剩下的位数必须是偶数,否则报「十六进制位数需为偶数」——因为两个十六进制字符才拼得成一个字节。
反转 Unicode 时只认「反斜杠加 u 再跟恰好四位十六进制」这一种形状,写成三位或混进非法字符的会被当成普通文本原样留着,既不报错也不替你猜。
注意事项
- 全在浏览器本地转换,不上传。
- Hex 方向按 UTF-8;若对方给的其实是 GBK 字节,解出来会是乱码。
- 复制的是结果框里的文本,含分隔空格(Hex)或反斜杠(Unicode),按需再整理。
- 「结果转输入」只搬文本、不会自动切换转或解的方向,接力后记得自己点对向的按钮。
- 两个标签互不影响:十六进制只认字节写法,Unicode 只认反斜杠转义写法,别把一种的串拿去另一个标签反转。
- 转义只针对非 ASCII,纯英文数字和常见标点转码后几乎和原文一样,这是设计如此,不是没生效。