将特殊字符转换为常规C#字符

3
在C#中是否有一种命令可以将类似于:https%3A%2F%2Fwww.google.com 的字符串转换回 https://www.google.com?可能是某种“解密”方法吗?请注意保留HTML标记。
4个回答

8
您需要使用System.Web.HttpUtility.UrlDecode来完成此操作:
string real = System.Web.HttpUtility.UrlDecode(encodedString);

你可以使用反向函数 System.Web.HttpUtility.UrlEncode 进行编码。
这不是加密或解密的问题。只是因为一些字符不能作为 URL 的参数或其他部分表达出来。例如,冒号 (:) 不能成为 URL 尾的一部分,因为它被用于前缀 (http:),所以它被编码为 %3A。
同样,斜杠被编码为 %2F。因此,%3A%2F2%F 表示 ://。

4

3
你可以尝试。
HttpUtility.UrlDecode(url);

或者

Uri.UnescapeDataString(url);

2

如果您不是在开发Web应用程序,建议使用WebUtility类,因为您无需导入整个System.Web程序集即可访问UrlDecode,而这是HttpUtility类所必需的。 (您需要针对.NET 4进行目标设置)

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接