如何在 JavaScript 警报函数中使用 UTF-8 文字?

How to use UTF-8 literals in JavaScript alert functions?

假设我们有一个 UTF-8 字符串(由字符形式的十六进制字节字符串表示),其中可能包含表情符号或任何其他 Unicode 字符。我们如何将字符串表示为 JavaScript 中的文字,以便在 alert 函数中使用?在PHP中,有两种简单的方法:(1)"\xE2\x96\xB6"(2)hex2bin('E296B6')。我在纯 JavaScript 中做同样的事情时遇到了麻烦。 '\xE2\x96\xB6' 似乎不起作用(它在 alert 函数中显示段落标记而不是直角实心三角形)。

我想写一个 'hex2bin' 函数来 return 作为十六进制字节字符串的参数,但是 JavaScript 没有这样的数据类型。在 PHP 中,字符串可以包含任何位模式,但我认为 JavaScript 不是这样。

我知道 JavaScript 是一种支持 Unicode 的现代语言,所以一定有一种简单的方法可以做到这一点。

请注意,任何谈论 \u 构造的答案都是错误的,因为 \u 不接受 UTF-8 字符串。 UTF-8 目前是大多数字符串存储的标准和建议,但大多数编程语言还没有为 UTF-8 字节字符串提供简单的文字语法。

当程序员谈论 Unicode 的低级表示时,他们通常对 UTF-8 感兴趣,因为它是一种标准且高效的编码。 UTF-16 和 Unicode 代码点(以及许多奇怪的编码)很有趣,特别是对于命名字符(U+HHHH 表示法)和以固定宽度表示它们。但 UTF-8 才是标准,我们需要 Stack Overflow 上的更多答案来帮助我们使用 UTF-8。

您可以使用 decodeURIComponent,当前缀为“%”时,它可以识别 UTF8 十六进制代码:

console.log(decodeURIComponent("%E2%96%B6"));