Unescape在c#中转义的网址

Smi*_*ith 10 .net c# url escaping winforms

我有以这种形式转义的网址:

   http://www.someurl.com/profile.php?mode=register&agreed=true
Run Code Online (Sandbox Code Playgroud)

我想将其转换为非转义形式

   http://www.someurl.com/profile.php?mode=register&agreed=true
Run Code Online (Sandbox Code Playgroud)

这与escapped html相同吗?

我该怎么做呢?

谢谢

Mar*_*age 13

&是一个HTML实体,在文本编码为HTML时使用,因为你必须"逃避" &在HTML中具有特殊含义的文本.显然,这个转义机制在URL上使用可能是因为它在某些HTML中用于例如链接中.我不确定你为什么要解码它,因为浏览器会在点击链接时进行正确的解码.但无论如何,要恢复它,您可以HttpUtility.HtmlDecodeSystem.Web命名空间中使用:

var encoded = "http://www.someurl.com/profile.php?mode=register&agreed=true";
var decoded = HttpUtility.HtmlDecode(encoded);
Run Code Online (Sandbox Code Playgroud)

价值decoded是:

http://www.someurl.com/profile.php?mode=register&agreed=true
Run Code Online (Sandbox Code Playgroud)

使用的另一种编码/解码形式是URL编码.这用于能够在URL的部分中包含特殊字符.例如字符/,?并且&在URL中具有特殊含义.如果您需要在查询参数中包含任何这些字符,则必须对参数进行URL编码,以免弄乱URL.以下是使用URL转义的URL示例:

http://www.someurl.com/profile.php?company=Barnes+%26+Noble
Run Code Online (Sandbox Code Playgroud)

公司名称Barnes & Noble编码为Barnes+%26+Noble.如果&尚未转义,则URL将包含不是一个而是包含两个查询参数,因为&它用作查询参数之间的分隔符.