Alo*_*hci 4 html utf-8 windows-1252 character-reference
数字字符引用指定文档字符集中字符的代码位置.
因此,如果文档字符集编码是UTF-8,则数字引用应指定Unicode代码点.
&符号后面必须跟一个U + 0023 NUMBER SIGN字符(#),后面必须跟一个U + 0078 LATIN SMALL LETTER X字符(x)或U + 0058 LATIN CAPITAL LETTER X字符(X),然后必须跟随一个或多个数字,范围为U + 0030 DIGIT ZERO(0)至U + 0039 DIGIT NINE(9),U + 0061 LATIN SMALL LETTER A至U + 0066 LATIN SMALL LETTER F和U + 0041 LATIN CAPITAL LETTER A到U + 0046 LATIN CAPITAL LETTER F,表示一个基数为16的整数,对应于根据下面定义允许的Unicode代码点.然后必须在数字后跟一个U + 003B SEMICOLON字符(;).
没有提到文档字符集,它只是说数字值标识Unicode代码点.
但似乎所有现代浏览器(我都没有测试过较旧的浏览器)对待 通过 好像他们正在引用Windows-1252
例如, 显示€,但U + 0080不是代码点€,U + 20AC是.U + 0080的Unicode代码点定义为PAD
€ 也(正确)显示€.
这是浏览器的简单实用行为,还是我缺少规范中的理由?
[请注意,十进制字符引用具有相同的行为.为了清晰和一致,我只使用了十六进制的.