Unicode Escape / Unescape

One input per line. Output is numbered to match the input order.
Pinned tools are listed in your favourites on the home page.Copies a link to this tool that carries your current input, so it opens ready to run.Gives you an iframe snippet for putting this tool on your own site.
Ctrl+Enter Run  · Ctrl+Shift+C Copy  · Esc Clear

Understand Unicode Escape / Unescape

Unicode 转义把非 ASCII 字符改写成 \uXXXX 形式,让文本能够安全通过只接受纯 ASCII 的文件、字段和系统。

How it works

码点大于 127 的每个字符都会被替换成反斜杠 u 加上它的十六进制码点,因此 é(U+00E9)变成 \u00E9。U+FFFF 以上的字符——emoji 和多数古文字——四位十六进制装不下,工具会输出 ES2015 的花括号形式 \u{1F30D}。ASCII 字符原样保留,这让输出仍然可读、也便于做 diff。

When to use it

  • 把非 ASCII 文本粘进 Java .properties 文件,或粘进编码方式不受你控制的源文件。
  • 当两个长得一样的字符——连字符与短破折号、普通空格与不换行空格——导致比较失败时,查清字符串里到底是哪一个。
  • 编写正则或测试夹具时,需要让不可见字符在页面上可见。
  • 把文本送进遗留系统,或送进只允许 ASCII 的数据库列。

Watch out for

  • 花括号形式 \u{1F30D} 是合法的 JavaScript,却不是合法的 JSON。同一个字符在 JSON 中必须写成代理对 \uD83C\uDF0D,因此转义后的 emoji 不能直接粘进 .json 文件。
  • 转义改变的是写法,不是字符串本身。看起来一模一样的两个字符串仍可能不同——é 既可能是一个码点(U+00E9),也可能是 e 加一个组合重音(U+0065 U+0301)——而转义正是看清手上是哪一种的办法。
  • \uXXXX、\xXX 和 %XX 是三样不同的东西:码点、字节和 URL 转义。把它们混在一起是乱码的常规来源。

Frequently Asked Questions

Unicode 转义序列是什么?

Unicode 转义用码点表示字符:\u0041 = A,\u1F600 = 😀。它出现在 JavaScript 字符串字面量、JSON 文件、Java properties 和 CSS content 值中,用来在 ASCII 源码里安全地表示任意字符。

\u 和 \u{} 有什么区别?

\uXXXX(4 位十六进制)覆盖基本多文种平面(U+0000–U+FFFF)。U+FFFF 以上的字符(emoji、生僻符号)需要代理对(两段 \uXXXX),或者使用 ES2015+ 支持的扩展转义 \u{XXXXXX}。

实际代码中什么时候会出现 Unicode 转义?

开发者会在正则表达式(\u0041)、Java .properties 文件、发往纯 ASCII 系统的 JSON 载荷、字符集受限的数据库字段,以及 IDE 不支持非 ASCII 的源文件中使用转义。

How to Use Unicode Escape / Unescape

  1. Paste or type your input in the input area above.
  2. The tool processes your input automatically or click Run.
  3. Copy or download the result using the action buttons.
  4. Use Ctrl+Enter to run quickly from the keyboard.