Validation 我真的需要编码'&';as'&;amp';?
我在我网站的Validation 我真的需要编码'&';as'&;amp';?,validation,html,utf-8,character-encoding,Validation,Html,Utf 8,Character Encoding,我在我网站的中使用了带有HTML5和UTF-8的“&”符号。谷歌在其SERP上显示了符号和fine,所有浏览器的标题也显示了符号和fine 给我这个: &没有开始字符引用。(&可能应该转义为&;) 我真的需要做& 我并不担心我的页面为了验证而进行验证,但我很想听听人们对此的看法,以及它是否重要以及原因。好吧,如果它来自用户输入,那么绝对是的,原因显而易见。想一想,如果这个网站没有做到这一点:这个问题的标题会显示为我真的需要将“&”编码为“&”吗? 如果它只是像回声“Dolce&Gab
中使用了带有HTML5和UTF-8的“&
”符号。谷歌在其SERP上显示了符号和fine,所有浏览器的标题也显示了符号和fine
给我这个:
&没有开始字符引用。(&可能应该转义为&;
)
我真的需要做&代码>
我并不担心我的页面为了验证而进行验证,但我很想听听人们对此的看法,以及它是否重要以及原因。好吧,如果它来自用户输入,那么绝对是的,原因显而易见。想一想,如果这个网站没有做到这一点:这个问题的标题会显示为我真的需要将“&”编码为“&”吗?
如果它只是像回声“Dolce&Gabbana”代码>那么严格地说你不必这么做。这会更好,但如果你不这样做,没有用户会注意到差异。好吧,如果它来自用户输入,那么绝对是的,原因很明显。想一想,如果这个网站没有做到这一点:这个问题的标题会显示为我真的需要将“&”编码为“&”吗?
如果它只是像回声“Dolce&Gabbana”代码>那么严格地说你不必这么做。这会更好,但如果你不这样做,没有用户会注意到差异。是的。正如错误所说,在HTML中,属性是#PCDATA,这意味着它们被解析。这意味着您可以在属性中使用角色实体。单独使用&
本身是错误的,如果不是为了宽松的浏览器,而且这是HTML而不是XHTML,将破坏解析。只需将其作为&代码>一切都会好起来的
HTML5允许您将其保留为不可替换的,但仅当后面的数据看起来不像有效的字符引用时。然而,与其担心哪些符号应该是,哪些符号不需要是,还不如逃避这个符号的所有实例
记住这一点;如果您没有逃出&to&;,则;,这对于您创建的数据(代码很可能无效)来说已经够糟糕的了,您也可能无法逃逸标记分隔符,这对于用户提交的数据来说是一个巨大的问题,很可能导致HTML和脚本注入、cookie窃取和其他利用漏洞的行为
请转义你的密码。这将在将来为你节省很多麻烦。是的。正如错误所说,在HTML中,属性是#PCDATA,这意味着它们被解析。这意味着您可以在属性中使用角色实体。单独使用&
本身是错误的,如果不是为了宽松的浏览器,而且这是HTML而不是XHTML,将破坏解析。只需将其作为&代码>一切都会好起来的
HTML5允许您将其保留为不可替换的,但仅当后面的数据看起来不像有效的字符引用时。然而,与其担心哪些符号应该是,哪些符号不需要是,还不如逃避这个符号的所有实例
记住这一点;如果您没有逃出&to&;,则;,这对于您创建的数据(代码很可能无效)来说已经够糟糕的了,您也可能无法逃逸标记分隔符,这对于用户提交的数据来说是一个巨大的问题,很可能导致HTML和脚本注入、cookie窃取和其他利用漏洞的行为
请转义你的密码。这将在将来为您节省很多麻烦。这取决于分号出现在您的&
附近的可能性,从而导致它显示完全不同的内容
例如,当处理来自用户的输入时(例如,如果您在标题标签中包含用户提供的论坛帖子主题),您永远不知道他们可能会在哪里放置随机分号,并且可能会随机显示奇怪的实体。所以,在那种情况下,一定要逃跑
当然,对于您自己的静态html,您可以跳过它,但是包含适当的转义是非常琐碎的,因此没有很好的理由避免它。这取决于分号出现在&
附近的可能性,从而导致它显示完全不同的内容
例如,当处理来自用户的输入时(例如,如果您在标题标签中包含用户提供的论坛帖子主题),您永远不知道他们可能会在哪里放置随机分号,并且可能会随机显示奇怪的实体。所以,在那种情况下,一定要逃跑
当然,对于您自己的静态html,您可以跳过它,但是包含正确的转义是非常简单的,因此没有很好的理由避免它。是的,如果可能,您应该尝试提供有效的代码
大多数浏览器都会以静默方式更正此错误,但依赖浏览器中的错误处理存在问题。对于如何处理不正确的代码没有标准,因此由每个浏览器供应商来尝试如何处理每个错误,结果可能会有所不同
浏览器可能做出不同反应的一些示例是,如果将元素放在表中,但放在表单元格之外,或者将链接嵌套在彼此内部
对于您的特定示例,它不太可能导致任何问题,但浏览器中的错误更正可能会导致浏览器从符合标准的模式更改为“怪癖”模式,这可能会使您的布局完全崩溃
因此,您应该更正代码中的此类错误,如果没有其他错误的话,这样可以使验证器中的错误列表保持简短,这样您就可以发现更严重的问题。是的,如果可能,您应该尝试提供有效的代码
大多数浏览器都会以静默方式更正此错误,但依赖浏览器中的错误处理存在问题。对于如何处理不正确的代码没有标准,因此由每个浏览器供应商来尝试如何处理每个错误,结果可能会有所不同
一些例子
<title>Foo & Bar</title>
<!DOCTYPE html>
<html>
<title>Dolce & Gabbana</title>
<body>
<p>am i allowed loose & mpersands?</p>
</body>
</html>
<p title="&">foo & bar</p>
<p title="&">foo & bar</p>
<p title="&">foo & bar</p>
<div style="..." ... style="...">
<div style="...; ..." ...>
<img alt="" src="foo?bar=qut&qux=fop" />