2

在 JSP 文件中,源代码是

|&#x0031;&#x0080;&#x0033;|<%="\u0031\u0080\u0033" %>|

页面上的结果是:

|1€3|13|

为什么欧元符号表示不同?

4

1 回答 1

2

范围 0x80–0x9F 中的 HTML 数字字符引用实际上并不对应于字符 U+0080–U+009F。相反,它们指的是从windows-1252编码映射到字节 0x80–0x9F 的字符。

这是浏览器使用 Unicode 之前的一个奇怪的历史产物。HTML5 对它进行了某种标准化,尽管它是无效的解析器,但需要以这种方式解析它。这在 XML/XHTML 中不会发生。

所以\u0080给你实际的字符 U+0080,你看不到,因为它是一个不可见的控制字符,但&#x0080;给你代码页 1252 字节 0x80,这是 U+20AC 欧元符号。

于 2015-04-08T13:05:33.210 回答