Unescape在c#中转义的url
我有以这种forms转义的url:
http://www.someurl.com/profile.php?mode=register&agreed=true
我想将它转换为非转义forms
http://www.someurl.com/profile.php?mode=register&agreed=true
这与escapped html是一回事吗?
我该怎么做呢?
谢谢
&
是一个HTML实体,在将文本编码为HTML时使用,因为您必须“转义”HTML中具有特殊含义的&
。 显然,这个转义机制在URL上使用可能是因为它在某些HTML中用于例如链接中。 我不确定你为什么要解码它,因为浏览器会在点击链接时进行正确的解码。 但无论如何,要恢复它,您可以在System.Web
命名空间中使用HttpUtility.HtmlDecode
:
var encoded = "http://www.someurl.com/profile.php?mode=register&agreed=true"; var decoded = HttpUtility.HtmlDecode(encoded);
decoded
的值是:
http://www.someurl.com/profile.php?mode=register&agreed=true
使用的另一种编码/解码forms是URL编码。 这用于能够在URL的部分中包含特殊字符。 比如字符/
?
和&
在URL中有特殊含义。 如果您需要在say a query参数中包含任何这些字符,则必须对参数进行URL编码,以免弄乱URL。 以下是使用URL转义的URL示例:
http://www.someurl.com/profile.php?company=Barnes+%26+Noble
公司名称Barnes & Noble
为Barnes+%26+Noble
。 如果&
未被转义,则URL将包含不是一个而是包含两个查询参数,因为&
用作查询参数之间的分隔符。