如果我有一个带有查询参数的网址,那么“逃避”&查询参数分隔符?
实施例
<a href="/foo.html?cat=meow&dog=woof">go</a>
VS
<a href="/foo.html?cat=meow&dog=woof">go</a>
RFC 2396明确指出使用“&amp;”是正确的,但我无法找到使用保留字符的转义版本的(有效)的任何内容。
我注意到的一件事是Chrome在点击浏览器中的链接时似乎原谅了他们,但是当我查看页面的来源时,点击链接(/foo.html?cat=meow&dog=woof)从视图源视图来看,它不起作用。
我很想知道是否有任何规格/部分我可以指出“仅使用&amp;并且不要使用&amp;或%26(这是&amp; URL编码)。
(注意:当我开始使用以这种方式构建其URL的代码库时,会出现这个问题,我个人会使用'&amp;')
RCF 2396:http://www.ietf.org/rfc/rfc2396.txt
更新1
正确 - 服务器写入页面的实际URL是:&lt; a href =“/ foo.html?cat = meow&amp; dog = woof”&gt; go&lt; / a&gt; ..是否有一个说明使用&amp;的有效性的规范作为查询参数分隔符?我不是在浏览器中寻找“主要是什么”,但是正确的方式是什么来界定查询参数。
答案 0 :(得分:2)
TLDR;所有评估为&
的配方都同样有效。
来自OP的链接:
与使用类似BNF的语法来定义协议允许的字节(八位字节)的许多规范不同,URI语法是根据字符定义的。 语法中的每个文字对应于它所代表的字符,而不是任何特定编码字符集中该字符的八位字节编码。如何用线上的位和字节表示URI是取决于用于传输协议的协议的字符编码,或包含它的文档的字符集。
-- RFC: 2396 - Uniform Resource Identifiers (URI): Generic Syntax August 1998
通过
<强>吨。伯纳斯李* 强>
MIT / LCS
R上。守备
U.C。欧文
升。 Masinter
施乐公司
*:那有多酷!
答案 1 :(得分:1)
以HTML格式进行转义 - 当您点击此类链接时,浏览器会将&
视为&
。
要对网址&
进行编码,您可以percent encode将其编入%26
。