查询字符串值具有“&”

时间:2010-02-24 14:11:41

标签: c# asp.net encoding decoding

我有一个像

这样的查询字符串
www.google.com?Department=Education & Finance&Department=Health

我将这些标记为li标记,其查询字符串如下:

  • 教育与宣传金融
  • 健康

现在的问题是,当我正在进行NamevalueCollection并获得所有键值时:它只给我教育,而不是财务......

知道如何解决这个问题吗?

3 个答案:

答案 0 :(得分:8)

您需要先调用Server.UrlEncode对值进行编码,然后再将其放入网址。

如果您的值在数组中,则需要使用循环。如果您需要精确的说明,则需要向我们展示您当前的代码。

答案 1 :(得分:6)

&符号(&)是网址中的特殊字符。因此,上述网址被视为www.google.com的三个参数:2个部门和财务部门。

尝试使用:

System.Web.HttpUtility.UrlEncode(string url) 

对网址进行编码。

答案 2 :(得分:3)

查询字符串中的值应该是url编码的。现在无法确定将值对与{1}}字符分开的&字符之间的差异。此外,尽管大多数浏览器都会接受URL中的空格,但根据标准无效。

在值&中,您必须将空格编码为Education & Finance+,将%20字符编码为&,使其变为{{ 1}}。

所以正确的URL应该是:

%26