使用“&amp;”在<a></a>

时间:2015-06-21 03:16:01

标签: html html5

目前,我有:

<a href="process.php?action=start&pid=1">Start Process</a>

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

& did not start a character reference. (& probably should have been escaped as &amp;.)

是否有另一种正确的方式来放置“&amp;”进入<a></a>标签,或者我应该留下它的样子?

1 个答案:

答案 0 :(得分:7)

Web Design GroupCommon Validator Problems page中解释了URL中的&符号(&):

  

网址中的&符号(&amp; s)

     

当包含包含&符号的URL(“&amp;”):

时,会发生另一个常见错误
<!-- This is invalid! --> <a href="foo.cgi?chapter=1&section=2&copy=3&lang=en">...</a>
     

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

     

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

<a href="foo.cgi?chapter=1&amp;section=2&amp;copy=3&amp;lang=en">...</a>
     

请注意更换&amp;只有在用HTML编写网址时才会使用&amp;,其中“&amp;”是一个特殊字符(以及“&lt;”和“&gt;”)。在纯文本电子邮件或浏览器的位置栏中编写相同的URL时,您将使用“&amp;”而不是"&amp;"。使用HTML,浏览器会将"&amp;"翻译为“&amp;”所以Web服务器只能看到“&amp;”而不是请求的查询字符串中的"&amp;"

相关问题