【问题标题】:How to use UTF-8 literals in JavaScript alert functions? [duplicate]如何在 JavaScript 警报函数中使用 UTF-8 文字? [复制]
【发布时间】:2020-10-08 23:23:58
【问题描述】:

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

我曾想过编写一个“hex2bin”函数以将参数作为十六进制字节字符串返回,但 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。

【问题讨论】:

  • 这能回答你的问题吗? Insert Unicode character into JavaScript
  • 只写'▶'。 (或者'\u25B6',如果您不信任您的文件编码。)
  • \u25B6看起来像一个 Unicode 代码点(所有 Unicode 字符列表中的实际索引)。这不是 UTF-8。 UTF-8 的全部优势在于它使用最少的字节来编码每个 Unicode 字符,即使是只有一个字节或六个或更多字节的字符。
  • @Bergi 将此问题作为重复项关闭。他错了,但我没有办法回复他。他引用的问题只有 Unicode 代码点答案 (\u),根本不处理 UTF-8。
  • @DavidSpector 您在 cmets 中对我的回复很好 :-) 您的问题是“我们如何在 JavaScript 中将字符串表示为文字以用于警报功能?”,答案是将您的脚本编码为 UTF-8 并直接嵌入'▶',正如重复目标所指出的那样。目前还不清楚您还在寻找什么。也许edit 你的问题是为了澄清你所说的“我们有一个 UTF-8 字符串”是什么意思。你在哪里拥有它,你想用它做什么?

标签: javascript unicode


【解决方案1】:

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

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

【讨论】:

  • Thanks1 这正是我正在寻找的。此方法将使用任何 UTF-8 编码的字符串作为文字。完美的。现在他们所要做的就是在 JavaScript 的未来版本中构建一个更简单的版本。
猜你喜欢
  • 2011-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-13
  • 1970-01-01
  • 2021-04-26
  • 1970-01-01
  • 2019-08-08
相关资源
最近更新 更多