写“&”是无效的HTML吗?通过它自己?为什么?

时间:2010-09-25 12:21:27

标签: html standards html-validation

  

可能重复:
  Do I really need to encode '&' as ' &' ?

我知道W3C recommends要“使用”& amp;“(ASCII十进制38)而不是”&“以避免与字符引用的开头混淆”,并且整洁警告“未转义的& amp; amp; amp; amp; amp; amp; amp; amp;但是,这些警告是不能承受的,写下(比方说)“Tiffany& Co.”是有效的。而不是更多的谨慎“蒂芙尼&公司”?

我知道上面的例子在我尝试的所有浏览器中都按预期呈现(即相同),但这是语言律师的语法问题。在我看来,只要表达不是“& blah;”的形式,它就应该是合法的。 (如果不写“< blah>”,则使用尖括号相同。)

顺便说一句,跳过< / li>的事实并不被视为警告,而未转义为&'s,则说明了HTML语法的不一致性。事实上,如果我们要依赖解析器的智能,省略一个< / ul> (例如)如果(未完成的)列表是文档的最后一部分应该没问题:没有< / ul>,没有< / body>,没有< / html> ......没有可能的歧义,对吧?

PS:我刚刚发现(明智的)未转义的尖括号在整理中没有产生警告,但被W3C的validator检测为错误,而未转义的&符号在两个地方都发出警告。去图......

1 个答案:

答案 0 :(得分:4)

无效?是。 HTML标记内的免费&符号将导致解析器错误。

现代浏览器可以忽略错误并正确解析吗?最有可能。

格式错误的HTML。