C# 在c中取消显示转义url#
我有以下形式转义的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中具有特殊含义的&。显然,这个转义机制
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.0HttpUtility
类的文档:。您记得添加对System.Web.dll
的引用吗?URL编码与m HTML编码,因为这标记为重复。标记为重新打开。