是否需要编码查询字符串?

时间:2010-12-13 18:26:51

标签: http url browser escaping

我发现Firefox在发送GET请求时会对http://www.mysite.com/foo?bar=10/12/2010这样的网址进行 NOT 编码。我知道URL必须编码,所以我希望看到Firefox请求http://www.mysite.com/foo?bar=10%2F12%2F2010(/ =%2F)。我使用Wireshark检查了GET请求。

是否应对网址中的查询字符串进行转义?

我使用WebHarvest我看到当我要求它下载带有http指令的页面时,像上面那样的URL编码就像我预期的那样(%2F而不是“/”)。

3 个答案:

答案 0 :(得分:1)

query of a URI中的/允许query = *( pchar / "/" / "?" )

{{1}}

必须使用percent-encoding 编码

答案 1 :(得分:0)

如果,通过转义,您的意思是URL编码,简短的答案是肯定的。

有许多字符通常在URL编码期间编码,但通常可以毫无问题地显示在URL中。

但有时潜在的问题并不总是显而易见的。我建议使用URL编码查询参数,并从您的站点解码它们。毕竟,如果你解码太多次,那不应该造成任何问题。

答案 2 :(得分:0)

无法重现您的问题。

<form>
    <input type="hidden" name="bar" value="10/12/2010">
    <input type="submit">
</form>

这会在地址栏中显示正确的转义。您是不是在<a>元素中提供此网址?然后你需要在HTML页面你自己中通过硬编码或利用服务器端语言提供的功能来转义它。