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)