这个工具做什么
Unicode 转义把中文、emoji 等非 ASCII 字符写成 \uXXXX 的纯 ASCII 形式——这样任何只认 ASCII 的通道(老配置文件、某些日志系统、代码字符串字面量)都能安全携带它们。比如「中」是 \u4e2d,emoji 🌙 在 JSON 里写作 \ud83c\udf19。
本页支持两种风格:JSON 风格 \uXXXX(emoji 拆成代理对,与 JSON.stringify 行为一致)和 ES6 风格 \u{1f319}(直接写完整码点)。还原方向同时认识 \uXXXX、\u{...} 与 \xXX,孤立代理对会明确报错。全程本地转换。
如何使用
- 选风格再转义 喂给 JSON API 或老旧系统选 \uXXXX;写现代 JS/正则选 \u{...}。可见 ASCII 字符不转义,只处理非 ASCII 部分。
- 还原时无需预处理 直接粘贴含转义的字符串;混合内容(一半原文一半转义)也可以,未匹配 \u 模式的反斜杠保持原样。
常见问题
为什么 emoji 变成了两个 \u?
JSON 风格按 UTF-16 拆代理对,emoji(码点 > 0xFFFF)必然是两个 \uXXXX。想看单个完整码点,切到 ES6 风格 \u{...}。
和 URL 编码(%E4%B8%AD)有什么区别?
URL 编码基于「字节」(UTF-8 的每字节一个 %XX);Unicode 转义基于「码元/码点」。同一个汉字:URL 是 %E4%B8%AD,JSON 转义是 \u4e2d。网页参数用前者,代码字符串用后者。
还原时遇到 \n \t 会变成换行制表吗?
不会。本工具只处理 \uXXXX / \u{...} / \xXX 三类 Unicode 转义;\n、\t 这类 C 风格转义保持原样(它们属于字符串转义,不是 Unicode 转义)。
报「孤立代理对」是什么意思?
\uD800–\uDFFF 区间的值必须高低成对出现(一个代理对表达一个 astral 字符)。只出现一半说明字符串被截断或拼错,还原会产生非法字符,因此直接报错。
转义后文件变大很多,正常吗?
正常。一个中文字符(3 字节 UTF-8)变成 6 个 ASCII 字符,emoji 甚至 12 个。这是「纯 ASCII 通道兼容」付出的体积代价。
内容会被上传吗?
不会。转换在浏览器 Worker 内完成,内容不出设备。
限制与边界
只处理 \uXXXX / \u{...} / \xXX 三类转义;\n、\t 等 C 风格字符串转义不在此工具范围。
可见 ASCII(0x20–0x7e)不参与转义;需要全转义请用 hex 工具。
孤立代理对直接报错;单次最大 2MB。