Hex / Unicode

文本与十六进制字节、Unicode 转义互相转换,分两个标签页处理。

Hex / Unicode

字符在计算机里最终都是数字:文本按 UTF-8 存成一串字节,写成十六进制就是 Hex;每个字符在 Unicode 里的编号写成反斜杠加 u 的四位十六进制,就是它的码点转义。这页提供两套互转,把看得见的人话和程序里那串数对上。

调试时看到一串十六进制想知道是哪个字、源码里一个 Unicode 转义要还原成汉字、检查一段文本的真实字节——第一个标签处理文本与十六进制的来回,第二个标签处理文本与 Unicode 转义的来回。

Hex 标签按 UTF-8 处理,转出的就是这段文字真实的字节;Unicode 标签只把非 ASCII 字符转成转义形式,字母数字标点原样留着,符合脚本里字符串转义的常见形态。

怎么用

  1. 选标签上方两个标签:「文本 ↔ 十六进制 (Hex)」和「文本 ↔ Unicode (\uXXXX)」,切标签会先按「转码」方向跑一次。
  2. 输入把内容放进中间输入框(占位「输入文本」)。转码时放文字,反转时放十六进制串或转义串。
  3. 转码点「转码 →」把输入按当前标签规则编成 Hex 或 Unicode 转义,结果显示在下方「结果」框。
  4. 反转点「← 反转」把输入解回文字:Hex 下会先清掉 0x 和非十六进制字符,位数凑不成偶数会提示「十六进制位数需为偶数」。
  5. 接力或复制点「结果转输入」把结果搬回输入框方便反向再转,点「复制」拷走当前结果。

示例

输入
工具(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,纯英文数字和常见标点转码后几乎和原文一样,这是设计如此,不是没生效。

常见问题

\u5de5 是什么

是汉字「工」的 Unicode 码点转义(U+5DE5)。在脚本里这样写,运行效果等同于直接写「工」这个字。

十六进制转中文为什么乱码

多半是字节不是 UTF-8(比如 GBK),或者位数不是偶数导致错位。确认好编码来源再转就正常。

e5b7a5 中间要不要加空格

不加也行:反转会忽略空格和 0x,只要十六进制位数是偶数就能解出来。

emoji 转出来为什么是两段转义

emoji 常在基本平面之外,UTF-16 用一对代理码点表示,于是一个字符被拆成两段转义。

Hex 和 Base64 有什么区别

Hex 把每字节写成两位十六进制(体积翻倍),Base64 把 3 字节压成 4 字符(约四分之三倍),都是安全表示字节,只是密度不同。

转出来的 hex 能要大写吗

不能,转出一律小写;反转输入时大小写都认,非 0-9a-f 的字符会被清掉。

一个中文转出来为什么是三段十六进制

因为一个中文在 UTF-8 里通常占三个字节,每字节写成两位十六进制,就是三段。它反映的是真实存储,不是字符本身。

反斜杠 u 后面为什么是四位

基本平面的字符码点最大正好能用四位十六进制表示。再往外的字符会用两个转义拼出来,因为那是代理对。

反转 Unicode 能一次处理很多个转义吗

能,输入里连排多个转义会被逐个还原成对应字符,普通文字和转义混着放也能正确解出来。

注册后可收藏工具、跨设备同步最近使用。