将 Unicode 字符插入到 JavaScript 中

2022-08-30 01:51:43

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


答案 1

我猜你真的想成为一个包含大写欧米茄的字符串吗?在这种情况下,您可以编写: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年都增加了对它的支持,因此使用起来应该相当安全。


答案 2

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

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

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

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

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

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

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