在<a> </a>中使用"&"

Geo*_*ell 1 html html5

目前,我有:

<a href="process.php?action=start&pid=1">Start Process</a>
Run Code Online (Sandbox Code Playgroud)

但是,我通过W3 HTML验证器(https://validator.w3.org)运行此代码,它出现了这个:

& did not start a character reference. (& probably should have been escaped as &amp;.)
Run Code Online (Sandbox Code Playgroud)

是否有另一种正确的方法将"&"放入<a></a>标签中,或者我应该像它一样离开它?

Gro*_*ify 7

&Web设计组的 " 公共验证器问题"页面中解释了URL中的&符号():

URL中的&符号(&)

包含包含&符号("&")的URL时会发生另一个常见错误:

<!-- This is invalid! --> <a href="foo.cgi?chapter=1&section=2&copy=3&lang=en">...</a>
Run Code Online (Sandbox Code Playgroud)

此示例为"未知实体部分"生成错误,因为假定"&"开始实体引用.浏览器通常可以安全地从这种错误中恢复,但在某些情况下确实会出现问题.在此示例中,许多浏览器正确地将© = 3转换为©= 3,这可能导致链接失败.由于&lang;是左指向尖括号的HTML实体,因此某些浏览器还将&lang = en转换为<= en.一个旧浏览器甚至找到实体§,将§ion = 2转换为§ion= 2.

为了避免验证器和浏览器出现问题,&amp;在HTML中编写URL时始终使用&代替&:

<a href="foo.cgi?chapter=1&amp;section=2&amp;copy=3&amp;lang=en">...</a>
Run Code Online (Sandbox Code Playgroud)

请注意,&amp;只有在HTML中编写URL时才会替换&,其中"&"是一个特殊字符(以及"<"和">").在纯文本电子邮件或浏览器的位置栏中编写相同的URL时,您将使用"&"而不是"&amp;".使用HTML,浏览器转换"&amp;"为"&",因此Web服务器只会看到"&"而不会"&amp;"在请求的查询字符串中.