Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 我真的需要编码'&';as'&;amp';?_Validation_Html_Utf 8_Character Encoding - Fatal编程技术网

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="&amp;">foo &amp; bar</p>
<p title="&amp">foo &amp bar</p>
<p title="&">foo & bar</p>
<div style="..." ... style="...">
<div style="...; ..." ...>
<img alt="" src="foo?bar=qut&qux=fop" />