&amp用于什么


106

以下网址的行为是否有任何差异。

我不知道为什么&插入,有什么区别吗?

www.testurl.com/test?param1=test&current=true

www.testurl.com/test?param1=test&current=true


1
你能给个背景吗?这是形式行动吗?只是显示在页面上?
jprofitt 2012年

@ user470184我没有投票,但考虑了。关于此问题,已经有大量关于SO的信息。
Charles Sprayberry 2012年

“一般行为”仍然很模糊。您是否想知道类似<p>www.testurl.com/test?param1=test&amp;current=true</p>或的东西<a href="www.testurl.com/test?param1=test&amp;current=true">linky</a>
jprofitt 2012年

@ jprofitt <a href="www.testurl.com/test?param1=test&current=true">链接</a>
蓝天

Answers:


126

& 是“字符参考开始”的HTML。

&amp; 是“&符”的字符参考。

&current; 不是标准字符参考,错误也是(浏览器可能会尝试执行错误恢复,但您不应依赖此错误)。

如果您将字符引用用于真实字符(例如&trade;),则它(™)将出现在URL中,而不是您想要的字符串。

(请注意,根据您使用的HTML版本,您可能必须在字符引用后加上;,这就是为什么&trade=将其视为™的原因。如果下一个字符是非单词字符,则HTML 4会忽略该字符(例如=),但某些浏览器(Hello Internet Explorer)与此有关)。



5

我的来源:http : //htmlhelp.com/tools/validator/problems.html#amp

当包含包含与号(“&”)的URL时,会发生另一个常见错误:

这是无效的:

a href =“ foo.cgi?chapter = 1&section = 2&copy = 3&lang = zh-CN”

说明:

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

因此,此处的目标是在尝试验证网站时避免出现问题。因此&amp;,在标记中写入URL时,应该用“与”号替换。

需要注意的是替换&&amp; 仅当用HTML编写URL时才完成此操作,其中HTML "&"是一个特殊字符(以及“ <”和“>”)。在纯文本电子邮件或浏览器的位置栏中写入相同的URL时,应使用"&"和而不是"&amp;"。使用HTML,浏览器可以转换"&amp;"为HTML,"&"因此Web服务器只能在请求的查询字符串中看到,"&" 而不能"&amp;"在请求的查询字符串中看到。

希望这可以帮助 : )



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.