3

C# 中是否有将字符串转换为 : 之类的https%3A%2F%2Fwww.google.com命令https://www.google.com

也许某种“解密”方法?

4

4 回答 4

8

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

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

您可以使用 reverse 函数System.Web.HttpUtility.UrlEncode进行编码。

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

同样,斜杠被编码为 %2F。因此,%3A%2F2%F 表示 ://。

于 2013-08-29T11:56:21.520 回答
4

您可以使用HttpUtility.UrlDecode

于 2013-08-29T11:54:42.397 回答
3

你可以试试

HttpUtility.UrlDecode(url);

或者

Uri.UnescapeDataString(url);
于 2013-08-29T11:54:17.663 回答
2

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

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

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

于 2013-08-29T12:04:32.550 回答