我需要在我的 html 页面上插入一个 Omega (Ω)。我正在使用它的 HTML 转义代码来做到这一点,所以我可以写 Ω
并得到 Ω。当我将它放入 HTML 元素时,一切都很好;但是,当我尝试将其放入我的 JS 中时,例如 var Omega = Ω
,它将该代码解析为 JS 并且整个事情都不起作用。有人知道该怎么做吗?
原文由 Bluefire 发布,翻译遵循 CC BY-SA 4.0 许可协议
我需要在我的 html 页面上插入一个 Omega (Ω)。我正在使用它的 HTML 转义代码来做到这一点,所以我可以写 Ω
并得到 Ω。当我将它放入 HTML 元素时,一切都很好;但是,当我尝试将其放入我的 JS 中时,例如 var Omega = Ω
,它将该代码解析为 JS 并且整个事情都不起作用。有人知道该怎么做吗?
原文由 Bluefire 发布,翻译遵循 CC BY-SA 4.0 许可协议
虽然@ruakh 给出了一个很好的答案,但为了完整性我会添加一些替代方案:
实际上,您甚至可以在 JavaScript 中使用 var Omega = 'Ω'
,但前提是您的 JavaScript 代码是:
onclick="var Omega = 'Ω';
alert(Omega)"
或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 许可协议
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
2 回答7k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
我猜你实际上想要
Omega
是一个 _包含大写欧米茄的字符串_?在这种情况下,您可以编写:(因为 Ω 是 带有代码点 U+03A9 的 Unicode 字符;也就是说,
03A9
是937
,除了写成四个十六进制数字。)编辑添加(2022 年):现在存在一种替代形式,可以更好地支持 U+FFFF 以上的代码点:
从 https://caniuse.com/mdn-javascript_builtins_string_unicode_code_point_escapes 来看,大多数或所有浏览器都在 2015 年增加了对它的支持,因此使用起来应该是相当安全的。