C# 中是否有将字符串转换为 : 之类的https%3A%2F%2Fwww.google.com
命令https://www.google.com
?
也许某种“解密”方法?
您需要为此使用System.Web.HttpUtility.UrlDecode
:
string real = System.Web.HttpUtility.UrlDecode(encodedString);
您可以使用 reverse 函数System.Web.HttpUtility.UrlEncode
进行编码。
这不是加密或解密的问题。只是某些字符不能表示为 URL 中的参数或其他字符的一部分。例如,冒号 (:) 不能作为 URL 尾部的一部分,因为它用于前缀 (http:),因此它被编码为 %3A。
同样,斜杠被编码为 %2F。因此,%3A%2F2%F 表示 ://。
你可以试试
HttpUtility.UrlDecode(url);
或者
Uri.UnescapeDataString(url);
如果您不使用 Web 应用程序,我建议您改用WebUtility类,因为您不必导入整个 System.Web 程序集来访问UrlDecode
,这是HttpUtility
该类所必需的。(您需要以 .NET 4 为目标)
string unencoded = WebUtility.UrlDecode("https%3A%2F%2Fwww.google.com");
Uri.UnescapeDataString
如果不需要任何其他HTML
编码/解码方法,您也可以使用。这样System.Uri
您就不需要导入任何其他程序集。