所以我有这个 Angular 色:
🀀
MAHJONG TILE EAST WIND
其 Unicode 点 U+1F000 (U+D83C U+DC00)
和 UTF-8 编码 F0 9F 80 80
我的问题是如何在 JavaScript 中转义这个?
我一直看到 \uff00
,但那是针对 ASCII
的,因为 8 个字节最多只能达到 255。只需输入 \u1F000'
返回(不正确的)'ἀ0'
,尝试用 0
填充额外字节只会返回 \u0001F000'
。如何转义更高的值(例如我上面的 Angular 色?)。
如何不仅转义 Unicode 点,还转义 UTF-8 编码?
考虑到这一点,我注意到 Node REPL 能够显示许多 Unicode 值,但不能显示某些值(例如表情符号),即使我的终端窗口 (mac) 通常可以显示。这有什么规律或理由吗
最佳答案
您可以使用\uXXXX x2(对于 32 位值)格式转义字符。
要使用 UTF-8 字符串,请查看 typed arrays和 TextEncoder/TextDecoder 。它们相当新,因此您可能需要在某些浏览器中使用 polyfill。
示例
document.write('<h1>\uD83C\uDC00</h1>');
关于javascript - 如何在Node和浏览器js中正确使用Unicode和UTF-8特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30611316/