以下网址的行为是否有任何差异.
我不知道为什么&
插入,它有什么区别?
www.testurl.com/test?param1=test&current=true
Run Code Online (Sandbox Code Playgroud)
与
www.testurl.com/test?param1=test¤t=true
Run Code Online (Sandbox Code Playgroud)
Que*_*tin 104
&
是"字符引用开始"的HTML.
&
是"一个&符号"的字符参考.
¤t;
不是标准字符引用,因此是错误(浏览器可能会尝试执行错误恢复,但您不应该依赖于此).
如果您使用字符引用作为真实字符(例如™
),那么它(™)将出现在URL而不是您想要的字符串中.
(请注意,根据您使用的HTML版本,您可能必须使用a结束字符引用;
,这就是为什么&trade=
将被视为™.如果下一个字符是非单词字符,HTML 4允许它被省略(如=
),但某些浏览器(你好互联网浏览器)有问题,与此).
我的来源:http : //htmlhelp.com/tools/validator/problems.html#amp
包含一个包含与号 ("&") 的 URL 时会发生另一个常见错误:
这是无效的:
a href="foo.cgi?chapter=1§ion=2©=3&lang=en"
解释:
此示例为“未知实体部分”生成错误,因为
"&"
假定它开始实体引用。浏览器通常会从这种错误中安全地恢复,但在某些情况下确实会出现真正的问题。在这个例子中,许多浏览器正确地将 ©=3 转换为 ©=3,这可能会导致链接失败。由于 ⟨ 是左指尖括号的 HTML 实体,因此一些浏览器还将 &lang=en 转换为 ?=en。一个旧浏览器甚至找到实体 §,将 §ion=2 转换为 §ion=2。
因此,这里的目标是在您尝试验证网站时避免出现问题。因此,&
在您的标记中编写 URL 时,您应该将与号替换为 。
请注意,替换
&
为&
; 仅在以 HTML 编写 URL 时完成,其中"&"
是特殊字符(以及“<”和“>”)。在纯文本电子邮件或浏览器的地址栏中写入相同的 URL 时,您将使用"&"
而不是"&"
。使用 HTML 时,浏览器会转换"&"
为"&"
Web 服务器只会看到"&"
而不是"&"
在请求的查询字符串中。
希望这可以帮助 : )