C# 在c中取消显示转义url#

C# 在c中取消显示转义url#,c#,.net,winforms,url,escaping,C#,.net,Winforms,Url,Escaping,我有以下形式转义的URL: http://www.someurl.com/profile.php?mode=register&agreed=true 我想把它转换成无风景的形式 http://www.someurl.com/profile.php?mode=register&agreed=true 这和转义html是一样的吗 我该怎么做 谢谢是一个HTML实体,在将文本编码为HTML时使用,因为您必须“转义”在HTML中具有特殊含义的&。显然,这个转义机制

我有以下形式转义的URL:

   http://www.someurl.com/profile.php?mode=register&agreed=true
我想把它转换成无风景的形式

   http://www.someurl.com/profile.php?mode=register&agreed=true
这和转义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);
解码的
值为:

http://www.someurl.com/profile.php?mode=register&agreed=true
使用的另一种编码/解码形式是URL编码。这用于在URL的某些部分包含特殊字符。例如,字符
/
&
在URL中具有特殊含义。如果需要在查询参数中包含这些字符中的任何一个,则必须对参数进行URL编码,以免弄乱URL。以下是使用URL转义的URL示例:

http://www.someurl.com/profile.php?company=Barnes+%26+Noble

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

不确定为什么,但从@Martin的答案解码在我的情况下不起作用(我的情况下是文件名)%D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82%D0%B8%D0%BD%D0%BE%D0%B2%D1%81%D1%82%D1%8C%20%D0%BF%D1%80%D0%BE%D0%B4%D0%B0%D0%B6%202020%20(1)-8.xml”)

对我来说,工作方法-


请注意,这是过时的。

这是一个winforms应用程序。它在.net 2.0中工作吗?我收到一个错误,
HttpUtility'未声明。
@Smith:这是.net 2.0
HttpUtility
类的文档:。您记得添加对
System.Web.dll
的引用吗?URL编码与m HTML编码,因为这标记为重复。标记为重新打开。