编码/解码

Unicode 转义

文本与 Unicode 转义序列(\uXXXX)互转,支持 UTF-16 与 UTF-32

原文
转义结果

什么是 Unicode 转义?

Unicode 转义将字符表示为 \uXXXX(UTF-16)或 \UXXXXXXXX(码点)形式,便于在代码、正则或协议中表示非 ASCII 字符。

使用场景

  • 正则表达式中的 Unicode 字符
  • API 或配置文件中的非 ASCII 字符串
  • 防 XSS、过滤特殊字符时的表示

常见问题

\uXXXX 转义和 UTF-8 字节是什么关系?
\uXXXX 是 UTF-16 码元的十六进制写法,不是 UTF-8 字节。BMP 内字符一一对应;但 emoji 等增补平面字符是 2 个码元组成的代理对(如 😀 是 \uD83D\uDE00)。本工具会同时显示码点(U+1F600)和 UTF-8 字节,避免混淆。
为什么 emoji 转义后是两个 \u 开头的部分?
因为 JavaScript 字符串按 UTF-16 编码,码点超过 U+FFFF 的字符(含绝大多数 emoji)需要一对代理码元。ES6 的 \u{1F600} 花括号写法可以直接按码点书写,本工具支持切换输出格式。
什么场景需要 Unicode 转义?
典型场景:在不支持非 ASCII 的配置或协议里携带文本;排查"看起来一样但比较不相等"的字符串(不可见字符、全角/半角差异);分析控制台里 \u 开头的输出。转义让不可见差异变得可见。