2014-01-10 83 views
0

我对Javascript真的很陌生,我听说过unicode字符,但我不知道它们是如何工作的。我这样做:Unicode字符不能正常工作

alert("U+00BF"); 

这是一个颠倒的问号unicode的,但由于某些原因,它只是提醒字母“U + 00BF”。我已经使用Unicode字符与更多像这样的格式尝试:

alert("/xF3"); 

和那些工作,但我不知道我在做什么错误的第一个。有人知道吗?

+0

你可以让我们为代码的小提琴样本。另外我猜想它的发生是因为你要么使用utf-8字符集,要么完全不使用它。试着用utf-16来做。 –

+0

我该怎么做? – CPC

+1

'alert(“/ xF3”)'如何工作?它直接显示四个字符/ xF3。 –

回答

5

"U+00BF"alert("U+00BF");是包含字符'U''+''0''0''B''F'长度为6的字符串。因此,字符串"U+00BF"在警报中被回显。

基于https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Values,_variables,_and_literals#Unicode

您可以使用字符串常量,正则表达式和标识符的Unicode转义序列。转义序列由六个ASCII字符组成:\ u和一个四位十六进制数字。例如,\ u00A9代表版权符号。 JavaScript中的每个Unicode转义序列都被解释为一个字符。

这意味着,我们需要做的:

alert("\u00BF"); 

看到 “倒置问号” Unicode字符。

2

符号U + 00BF只是一种传统方式,强调您在文本中通过其代码编号00BF提及Unicode字符。这不是JavaScript中的任何形式的转义符号。

您可以使用字符作为这样,

alert("¿") 

前提是处理character encoding issues,你应该反正。

但是,如果你发现这个简单的方法并不适用,由于一些外部约束,你可以用一个经典的JavaScript逃逸符号:

alert("\xBF") 

的字符最多U + 00FF,或范围基于Unicode的JavaScript转义符号

alert("\u00BF") 

字符范围高达U + FFFF。 (对于超出的字符,你需要一个所谓的代理对。)

注意,在这些符号所使用的特殊字符是\ U + 005C REVERSE SOLIDUS,一般,和原来,所谓的“反斜杠”,不/ū + 002F SOLIDUS,通常称为“斜线”,或有时(为了强调)“正斜杠”。