将 Unicode 字符插入 JavaScript

新手上路,请多包涵

我需要在我的 html 页面上插入一个 Omega (Ω)。我正在使用它的 HTML 转义代码来做到这一点,所以我可以写 Ω 并得到 Ω。当我将它放入 HTML 元素时,一切都很好;但是,当我尝试将其放入我的 JS 中时,例如 var Omega = Ω ,它将该代码解析为 JS 并且整个事情都不起作用。有人知道该怎么做吗?

原文由 Bluefire 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 637
2 个回答

我猜你实际上想要 Omega 是一个 _包含大写欧米茄的字符串_?在这种情况下,您可以编写:

 var Omega = '\u03A9';

(因为 Ω 是 带有代码点 U+03A9 的 Unicode 字符;也就是说, 03A9937 ,除了写成四个十六进制数字。)

编辑添加(2022 年):现在存在一种替代形式,可以更好地支持 U+FFFF 以上的代码点:

 let Omega = '\u{03A9}';
let desertIslandEmoji = '\u{1F3DD}';

https://caniuse.com/mdn-javascript_builtins_string_unicode_code_point_escapes 来看,大多数或所有浏览器都在 2015 年增加了对它的支持,因此使用起来应该是相当安全的。

原文由 ruakh 发布,翻译遵循 CC BY-SA 4.0 许可协议

虽然@ruakh 给出了一个很好的答案,但为了完整性我会添加一些替代方案:

实际上,您甚至可以在 JavaScript 中使用 var Omega = 'Ω' ,但前提是您的 JavaScript 代码是:

  • 在事件属性中,如 onclick="var Omega = '&#937'; alert(Omega)"
  • 在 XHTML(或 XHTML + XML)文档内的 script 元素中,使用 XML 内容类型。

在这些情况下,代码将首先(在传递给 JavaScript 解释器之前)由 HTML 解析器解析,以便识别像 Ω 这样的字符引用。在大多数情况下,这些限制使这种方法不切实际。

您也可以输入 Ω 字符,如 var Omega = 'Ω' ,但是字符编码必须允许,必须正确声明编码,并且您需要可以输入此类字符的软件。如果您对所有内容都使用 UTF-8 编码并准备好处理由此产生的问题,那么这是一个干净的解决方案并且非常可行。源代码将是可读的,阅读它,您会立即看到字符本身,而不是代码符号。另一方面,如果其他人开始使用您的代码,可能会引起意外。

使用 \u 符号,如 var Omega = '\u03A9' ,独立于字符编码工作,并且在实践中几乎是通用的。然而,它最多只能使用到 U+FFFF,即最多 \uffff ,但大多数人听说过的大多数字符都属于该区域。 (如果您需要“更高”的字符,则需要使用代理对或上述两种方法之一。)

您还可以使用 String.fromCharCode() 方法构造一个字符,将 Unicode 编号作为参数传递,十进制如 var Omega = String.fromCharCode(937) 或十六进制如 var Omega = String.fromCharCode(0x3A9) 这适用于 U+FFFF。即使您在变量中包含 Unicode 编号,也可以使用此方法。

原文由 Jukka K. Korpela 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题