什么是和用于

在URL下面的行为有什么区别吗?

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

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

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

&是“开始字符引用”的HTML。

& 是“和”的字符引用。

&current; 不是一个标准的字符引用,所以是一个错误(浏览器可能会尝试执行错误恢复,但不应该依赖于此)。

如果你使用了字符引用来表示一个真实的字符(例如™ ),那么它将会出现在URL中,而不是你想要的string。

(请注意,取决于您使用的HTML版本,您可能不得不用“ ;结束字符引用,这就是为什么&trade=将被视为™。如果下一个字符是非HTML字符,则HTML 4允许忽略它,单词字符(如= ),但某些浏览器(Hello Internet Explorer)有问题)。

Html不能识别&但它会识别& 因为它=在HTML中

我看了一下这个post: http : //www.webmasterworld.com/forum21/8851.htm

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

当包含一个包含&字符(“&”)的URL时,会出现另一个常见错误:

这是无效的:

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

说明:

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

所以这里的目标是在你试图validation你的网站时避免出现问题。 所以你应该用&amp; 在标记中写入URL时

请注意,用&amp ; 只有在HTML中写入URL时才会这样做,其中"&"是一个特殊字符(以及“<”和“>”)。 在纯文本电子邮件或浏览器的地址栏中写入相同的URL时,可以使用"&"而不是"&amp;" 。 用HTML,浏览器翻译"&amp;""&"所以Web服务器只会看到"&"而不是"&amp;" 在请求的查询string中。

希望这可以帮助 : )

这是一个很好的例子。 当&current被parsing成文本节点时,它被转换为¤t 当parsing成属性值时 ,它被parsing为&current

如果您想在文本节点中input&current ,则应该在您的标记中写入&amp;current

血淋淋的细节在这里: http : //dev.w3.org/html5/spec/tokenization.html#consume-a-character-reference