什么是URL编码%2526?

17
为什么要使用%2526来编码&,而不是%26
我正在调用外部网站的URL,并将&编码为%2526时,参数被正确传递,但当我只使用%26时,它们未能传递。

这取决于外部网站如何进行解码。encodeURIComponent("&")会给我"%26" - Alexander Pavlov
5个回答

24
如果你对 & 符号进行 URL 编码,你会得到 %26。如果你对 %26 进行 URL 编码,你会得到 %2526。因此,它被进行了两次 URL 编码。

8

%25是百分号字符,在URL解码中,%2526的结果为

%26

URL解码后的结果为

&

由于某些原因,您所做的呼叫似乎需要进行双倍百分号编码输入。如果不了解更多有关您正在做什么的信息,则无法知道为什么,但我猜一切都正常。


只是好奇 - 你是把这些代码记在脑子里的还是通过解码器运行的呢? :) - Czechnology
@Czechnology 我用解码器运行了它们。 :) 我无论如何都记不住这样的东西! - Pekka

1

显然在这个过程中它被解码了两次,首先从%2526%26,然后从%26&
你不应该花太长时间去思考为什么;如果这个方法有效,就直接使用它。


1
如果URL用于返回URL或另一个查询字符串的值,则应该对保留和排除的字符进行双重编码。 & 被单一编码为 %26,双重编码为 %2526。

0

&确实被编码为%26

您可以创建一个HTML文件进行测试,打开浏览器,输入您需要测试的符号,然后查看浏览器中生成的URL:

<form>
<input type='text' name='qwe'>
<input type='submit'>
</form>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接