在不使用HttpUtility.UrlDecode的情况下解码转义的Url

hus*_*int 35 .net url

是否有任何函数可以将转义的Url字符串转换为未转义的形式?System.Web.HttpUtility.UrlDecode()可以做那个工作,但我不想添加引用System.Web.dll.由于我的应用程序不是Web应用程序,因此我不想仅在程序集中使用函数添加依赖项.

更新:查看Rick Strahl关于同一问题的博客文章.

Iga*_*nik 62

编辑:使用静态方法Uri.UnescapeDataString()解码您的网址:

编码: http%3a%2f%2fwww.google.com%2fsearch%3fhl%3den%26q%3dsomething%20%2323%26btnG%3dGoogle%2bSearch%26aq%3df%26oq%3d

解码: http://www.google.com/search?hl=en&q=something #23&btnG=Google+Search&aq=f&oq=

  • 注意:这不适用于加号 - http://blogs.msdn.com/b/yangxind/archive/2006/11/09/don-t-use-net-system-uri-unescapedatastring-in-url -decoding.aspx我还在寻找一种更好的方法. (7认同)
  • @Chris:Rick Strahl围绕`Uri.UnescapeDataString()`构建了一个实用程序类,正确处理`+`符号.有关详细信息,请参阅[他的博客文章](http://www.west-wind.com/weblog/posts/617930.aspx). (3认同)

小智 6

如果您使用的是.NET 4.0或更高版本,则可以使用WebUtility.UrlDecode,它可以使用客户端配置文件并正确处理加号(请参阅讨论).