将\uXXXX或\u{XXXXXX}格式快速还原为汉字、符号、表情,纯前端运行,无需上传。
Unicode 是一套全球统一的字符编码标准,为世界上几乎所有文字、符号、表情分配唯一的码位(Code Point),解决早期编码碎片化导致的乱码问题。
U+XXXX 表示,范围 U+0000 到 U+10FFFF(共 1,114,112 个)。\uXXXX 是 UTF-16 代码单元转义,不足 4 位补零;超过 U+FFFF 用代理对 \uD800\uDC00 或 ES6 \u{1F600}。| 平面 | 范围 | 用途示例 |
|---|---|---|
| 基本多语言平面 BMP | U+0000 – U+FFFF | ASCII、汉字、常用符号 |
| 补充多语言平面 SMP | U+10000 – U+1FFFF | 历史文字、罕见汉字 |
| 补充表意平面 SIP | U+20000 – U+2FFFF | 康熙部首、扩展 B/C/D 汉字 |
| 补充特殊用途平面 SSP | U+E0000 – U+EFFFF | 标签、变体选择器 |
// ES5 代理对(>U+FFFF)
"\uD83D\uDE00" // 😀
// ES6 大括号写法
"\u{1F600}" // 😀
// 数字转义
String.fromCharCode(0x4F60) // "你"
String.fromCodePoint(0x1F600) // 😀
.length 返回 UTF-16 代码单元数,emoji 可能为 2;Unicode 给每个字符发“全球身份证”,\uXXXX 只是这张身份证的“转写形式”,让文本在代码里安全通行。
将\uXXXX或\u{XXXXXX}形式还原为人类可读的字符,常用于读取配置文件、反序列化文本、还原聊天内容。
// 解码
function fromUnicode(str) {
return str.replace(/\\u[\dA-F]{4}/gi, (m) => String.fromCharCode(parseInt(m.slice(2), 16)));
}
全部计算在浏览器完成,零上传、零收集。