HttpUtility.ParseQueryString无需解码特殊字符

Uri uri = new Uri(redirectionUrl); NameValueCollection col = HttpUtility.ParseQueryString(uri.Query) 

uri.Query已被解码 – 所以有什么方法可以防止ParseQueryString再次解码它?

除此之外 – 是否有另一种方法从Uri检索名称值集合而不修改任何组件?

在将uri.Query传递给uri.Query之前对其进行ParseQueryString是我的第一件事。

UPDATE

刚刚使用Reflector检查了ParseQueryString方法:它假设查询字符串已编码,您无法对其执行任何操作… Bummer。 所以我认为你需要手动解析它(网上有很多现成的算法)。

或者,您可以在将查询字符串传递给ParseQueryString方法之前对其进行正确编码(考虑变量名称和所有特殊字符)。

– 帕维尔

我遇到了同样的问题。 解决方案是添加第二个参数 – 编码。 如果你设置了UTF8编码,那么一切都有效。

 NameValueCollection col = HttpUtility.ParseQueryString(uri.Query, Encoding.UTF8)