我在我的网站的<title>中使用了HTML5和UTF-8的“&”符号。谷歌在其serp上显示与号fine,所有浏览器在其标题中也是如此。

http://validator.w3.org给了我这个:

&没有开始字符引用。(&可能应该被转义为&。)

我真的需要做&

我并不在意我的页面为了验证而验证,但我很好奇人们对这个问题的看法,以及它是否重要以及为什么重要。


当前回答

如果&在HTML中使用,那么你应该转义它。

如果&在JavaScript字符串中使用,例如,一个警报('This & that');或文档。你不需要用它。

如果你使用文档。写完之后你就应该使用它,例如:document。写(< p >,< / p >)。

其他回答

如果用户将它传递给您,或者它将在URL中结束,您需要转义它。

如果它以静态文本的形式出现在页面上?所有浏览器都能正确地处理这个问题,您不必太担心,因为它可以工作。

这取决于分号在&附近结束的可能性,导致它显示完全不同的内容。

例如,当处理来自用户的输入时(例如,如果在标题标签中包含用户提供的论坛帖子的主题),您永远不知道他们可能会在哪里放置随机分号,并且可能会随机显示奇怪的实体。所以在这种情况下一定要逃避。

当然,对于您自己的静态HTML内容,您可以跳过它,但是包含适当的转义太琐碎了,因此没有理由避免它。

如果&在HTML中使用,那么你应该转义它。

如果&在JavaScript字符串中使用,例如,一个警报('This & that');或文档。你不需要用它。

如果你使用文档。写完之后你就应该使用它,例如:document。写(< p >,< / p >)。

你能告诉我们你的头衔是什么吗?当我提交时

<!DOCTYPE html>
<html>
<title>Dolce & Gabbana</title>
<body>
<p>Am I allowed loose & mpersands?</p>
</body>
</html>

到http://validator.w3.org/ -明确要求它使用实验性的HTML 5模式-它没有抱怨&s…

是的,如果可能的话,您应该尝试提供有效的代码。

大多数浏览器会无声地纠正这个错误,但是依赖浏览器中的错误处理存在一个问题。对于如何处理不正确的代码没有标准,因此每个浏览器供应商都要尝试找出如何处理每个错误,结果可能会有所不同。

一些浏览器可能会有不同反应的例子是,如果你把元素放在表格中,但在表格单元格之外,或者你把链接嵌套在彼此之间。

对于您的特定示例,它不太可能导致任何问题,但是浏览器中的错误更正可能会导致浏览器从标准兼容模式变为怪癖模式,这可能会使您的布局完全崩溃。

因此,您应该在代码中纠正这样的错误,如果没有其他错误,则可以使验证器中的错误列表保持简短,以便您可以发现更严重的问题。