如何使用C#解码URL参数?

我怎样才能解码使用C#编码的URL参数?

例如,拿这个URL:

my.aspx?val=%2Fxyz2F 
 Server.UrlDecode(xxxxxxxx) 
 string decodedUrl = Uri.UnescapeDataString(url) 

要么

 string decodedUrl = HttpUtility.UrlDecode(url) 

一次调用Url不完全解码。 要完全解码,你可以在循环中调用这个方法之一:

 private static string DecodeUrlString(string url) { string newUrl; while ((newUrl = Uri.UnescapeDataString(url)) != url) url = newUrl; return newUrl; } 

你有没有尝试HttpServerUtility.UrlDecodeHttpUtility.UrlDecode

尝试这个:

 string decodedUrl = HttpUtility.UrlDecode("my.aspx?val=%2Fxyz2F"); 

试试string s = System.Uri.UnescapeDataString(here);

作为解决scheme,我可以build议创build一个扩展方法,可以解码您的URL在某种程度上是这样的:

 public static class DecodeString { public static string ToDecodeString(this string x) { if (x.Contains("%2B")) { x = x.Replace("%2B", "+"); } if (x.Contains("%2F")) { x = x.Replace("%2F", "/"); } if (x.Contains("%3D")) { x = x.Replace("%3D", "="); } return x; } } 

希望它可以帮助!