c# - HttpUtility.ParseQueryString 不解码特殊字符

标签 c# .net asp.net urlencode

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

uri.Query 已经解码 - 那么有什么方法可以阻止 ParseQueryString 再次解码它吗?

除此之外 - 是否有另一种方法可以在修改任何组件的情况下从 Uri 检索名称值集合?

最佳答案

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

更新

刚刚用 Reflector 检查了 ParseQueryString 方法:它假定查询字符串已编码,您不能用它做任何事情……真可惜。所以我认为你需要手动解析它(网上有很多现成的算法)。

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

-- 帕维尔

关于c# - HttpUtility.ParseQueryString 不解码特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4604158/

相关文章:

c# - 如何在 DocumentFormat.OpenXml 电子表格中添加行/单元格?

c# - 以编程方式将按钮添加到 GridView

.net - 可以听一个双胞胎(也许是 WIA)扫描仪吗?

c# - HostingEnvironment 不包含 IsHosted 的定义

c# - 如何使用 JavaScript 验证 GridView 内的下拉菜单

c# - 从可能为 null 的数据库值赋值的优雅语法

c# - 使属性(property)成为强制性的

c# - 在Web API中保存图像时无法解析 "A generic error occurred in GDI+"

c# - 我如何知道分配给线程的实际时间片?

c# - map 服务器: anyplatfom (opensource or not) to embed into website to query with SQL for further breakdown