2013-08-29 27 views

回答

6

您需要使用System.Web.HttpUtility.UrlDecode此:

string real = System.Web.HttpUtility.UrlDecode(encodedString); 

您CA n使用反向功能System.Web.HttpUtility.UrlEncode进行编码。

这不是一个加密或解密的问题。只是某些字符不能在URL中作为参数或其他参数的一部分表示。例如,冒号(:)不能作为URL尾部的一部分,因为它用在前缀(http :)中,所以它被编码为%3A。

以同样的方式,斜线被编码为%2F。因此,%3A%2F2%F表示://。

3

您可以尝试

HttpUtility.UrlDecode(url); 

Uri.UnescapeDataString(url); 
2

如果您不是在使用Web应用程序,我建议您使用WebUtility类,因为您不必导入整个System.Web程序集以访问HttpUtility类所需的UrlDecode。 (你需要瞄准.NET 4)

string unencoded = WebUtility.UrlDecode("https%3A%2F%2Fwww.google.com"); 

您还可以使用Uri.UnescapeDataString如果不需要任何其他HTML编码/解码方法。这是System.Uri,所以你不需要导入任何其他程序集。