什么是和用于
在URL下面的行为有什么区别吗?
我不知道为什么&
插入,它有什么区别?
www.testurl.com/test?param1=test&current=true
与
www.testurl.com/test?param1=test¤t=true
&
是“开始字符引用”的HTML。
&
是“和”的字符引用。
¤t;
不是一个标准的字符引用,所以是一个错误(浏览器可能会尝试执行错误恢复,但不应该依赖于此)。
如果你使用了字符引用来表示一个真实的字符(例如™
),那么它将会出现在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你的网站时避免出现问题。 所以你应该用&
在标记中写入URL时
请注意,用
&
; 只有在HTML中写入URL时才会这样做,其中"&"
是一个特殊字符(以及“<”和“>”)。 在纯文本电子邮件或浏览器的地址栏中写入相同的URL时,可以使用"&"
而不是"&"
。 用HTML,浏览器翻译"&"
到"&"
所以Web服务器只会看到"&"
而不是"&"
在请求的查询string中。
希望这可以帮助 : )
这是一个很好的例子。 当¤t
被parsing成文本节点时,它被转换为¤t
当parsing成属性值时 ,它被parsing为¤t
。
如果您想在文本节点中input¤t
,则应该在您的标记中写入&current
。
血淋淋的细节在这里: http : //dev.w3.org/html5/spec/tokenization.html#consume-a-character-reference