将Unicode字符插入到JavaScript中
我需要在我的html页面上插入一个欧米茄(Ω)。 我使用它的HTML转义代码来做到这一点,所以我可以写Ω
并得到Ω。 当我把它放入一个HTML元素时,这一切都很好, 然而,当我尝试把它放入我的JS,例如var Omega = Ω
,它parsing代码为JS,整个事情不起作用。 任何人都知道如何去做这个?
我猜你确实希望Omega
是一个含有大写欧米茄的string ? 在这种情况下,你可以写:
var Omega = '\u03A9';
(因为Ω是代码点U + 03A9的Unicode字符 ;即03A9
是937
,除了写成四个hex数字。
虽然@ruakh给出了一个很好的答案,但我会添加一些替代scheme来完成:
你甚至可以使用var Omega = 'Ω'
在JavaScript中,但只有当你的JavaScript代码是:
- 在事件属性中,如
onclick="var Omega = 'Ω'; alert(Omega)"
或 - 在XML内容types的XHTML(或XHTML + XML)文档中的
script
元素中。
在这些情况下,代码将首先(在传递给JavaScript解释器之前)由HTMLparsing器parsing,以便字符引用像Ω
被认可。 这些限制在大多数情况下是不切实际的。
您也可以inputΩ字符,如var Omega = 'Ω'
,但字符编码必须允许,编码必须正确声明,并且您需要软件让您input这些字符。 这是一个干净的解决scheme,如果你使用UTF-8编码,并且准备好处理由此产生的问题,这是一个很好的解决scheme。 源代码将是可读的,阅读它,你立即看到字符本身,而不是代码符号。 另一方面,如果其他人开始使用您的代码,可能会引起意外。
使用符号,如var Omega = '\u03A9'
,独立于字符编码,实际上几乎是通用的。 然而它也可以只用于U + FFFF,即最多可以\uffff
,但大多数人听说过的大多数字符都属于这个区域。 (如果你需要“更高”的字符,你需要使用代理对或上面两种方法之一。)
您也可以使用String.fromCharCode()
方法构造一个字符,并以var Omega = String.fromCharCode(937)
或hex(如var Omega = String.fromCharCode(0x3A9)
。 这适用于U + FFFF。 即使您在variables中具有Unicode编号,也可以使用此方法。
答案是正确的,但是你不需要声明一个variables。 一个string可以包含你的字符:
"This string contains omega, that looks like this: \u03A9"
不幸的是,仍然需要用ASCII码显示UTF-8,但是我仍然在等待(因为太多年了…)UTF-8与ASCII相同的日子,ASCII将只是一个记忆过去。