【问题标题】:How to use the ECMAScript 6 Unicode code point escapes?如何使用 ECMAScript 6 Unicode 代码点转义?
【发布时间】:2016-07-21 20:35:44
【问题描述】:
我有 this Unicode 字符,我想使用新的 Unicode Point Escapes 显示(即有人使用 '\u{Code Point Here}'
但是,我一定是做错了什么,因为这样做
console.log('\u{134069}');
返回:
Uncaught SyntaxError: Undefined Unicode code-point
但是使用
console.log('\ud842\udfb5')
返回(正确的)
????
如何使用代码点转义?
【问题讨论】:
标签:
javascript
unicode
ecmascript-6
utf-16
【解决方案1】:
Javascript 中的 Unicode 转义序列使用十六进制数字来表示代码点(这是有道理的,因为它们通常以这种方式表示)。您尝试使用134069,根据您提供的代理对,它实际上是您要打印的代码点的十进制表示。您将需要使用等效的十六进制,例如\u{20BB5} 在 ES6 中。
【解决方案2】:
\u{...} 是 BMP 及以上 Unicode 转义序列,\u1234 是 BMP-only 转义序列。广义的\u{...} 格式是 ES6 的一个新特性。对它们的支持将完全取决于您的目标 JS 环境,或者您是否使用了转译器。
【解决方案3】:
正如您已经看到的,您只能在 unicode 序列中使用 HEX 数字。但是,无需使用字符转义,只需将字符写入或复制/粘贴到字符串中,将其保存为 utf-8 即可。
今天的 Javascript 是 unicode(大多数 JavaScript 都是)。