在 JSP 文件中,源代码是
|1€3|<%="\u0031\u0080\u0033" %>|
页面上的结果是:
|1€3|13|
为什么欧元符号表示不同?
范围 0x80–0x9F 中的 HTML 数字字符引用实际上并不对应于字符 U+0080–U+009F。相反,它们指的是从windows-1252编码映射到字节 0x80–0x9F 的字符。
这是浏览器使用 Unicode 之前的一个奇怪的历史产物。HTML5 对它进行了某种标准化,尽管它是无效的解析器,但需要以这种方式解析它。这在 XML/XHTML 中不会发生。
所以\u0080
给你实际的字符 U+0080,你看不到,因为它是一个不可见的控制字符,但€
给你代码页 1252 字节 0x80,这是 U+20AC 欧元符号。