javascript - 如何在Node和浏览器js中正确使用Unicode和UTF-8特殊字符?

标签 javascript node.js unicode utf-8

所以我有这个 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 arraysTextEncoder/TextDecoder 。它们相当新,因此您可能需要在某些浏览器中使用 polyfill。

示例

document.write('<h1>\uD83C\uDC00</h1>');

关于javascript - 如何在Node和浏览器js中正确使用Unicode和UTF-8特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30611316/

相关文章:

javascript - 如果 (#formID) 的值大于 100000,则显示此 Div

java - 设置 Google AppEngine Jetty 版本

node.js - 如何在MongoDB中插入500万条记录?

python - 有没有办法以编程方式将韩文 unicode 合并为一个?

cocoa - 更改日语 (Unicode) 字符的字体大小

URL 包含非视觉字符

javascript - PhysicsJS 中的聚合体

javascript - 我得到的是圆而不是曼德尔布罗

javascript - 比较字符串时参数列表后缺少 )

node.js - 在 NPM 包内声明全局命令