1

根据HTML5 规范(就在表格之后),禁止使用以下字符:

否则,返回其代码点为该数字的 Unicode 字符的字符标记。Additionally, if the number is in the range 0x0001 to 0x0008, 0x000D to 0x001F, 0x007F to 0x009F, 0xFDD0 to 0xFDEF, or is one of 0x000B, 0xFFFE, 0xFFFF, 0x1FFFE, 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE, 0x3FFFF, 0x4FFFE, 0x4FFFF , 0x5FFFE, 0x5FFFF, 0x6FFFE, 0x6FFFF, 0x7FFFE, 0x7FFFF, 0x8FFFE, 0x8FFFF, 0x9FFFE, 0x9FFFF, 0xAFFFE, 0xAFFFF, 0xBFFFE, 0xBFFFF, 0xCFFFE, 0xCFFFF, 0xDFFFE, 0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE, 0xFFFFF, 0x10FFFE, or 0x10FFFF,那么这是一个解析错误。

这种排斥背后的原因或动机是什么?

4

1 回答 1

3

它们是导致互操作性问题的代码点,无论是与 XML/XHTML 文档还是与现有的 HTML 解析器。由于它们都没有任何明显的有效用途,因此应避免使用。

非字符(U+FDD0–FDEF 和 U+NFFFE–F)和控制字符 U+0000–8;0D–1F 在 XML 1.0 中无效。由于前面的表中的替换,0x80–0x9F 范围内的字符引用在 XML 和 HTML 解析器中产生不同的结果(还有许多非浏览器 HTML 解析器没有实现这个奇怪的历史怪癖)。

于 2015-04-09T13:45:05.467 回答