C# 转换为URL编码
我不确定问题的主题是否恰当。问题是: 我正在阅读一个页面的内容,以获取对URL的引用。内容如下所示:C# 转换为URL编码,c#,.net,regex,vb.net,C#,.net,Regex,Vb.net,我不确定问题的主题是否恰当。问题是: 我正在阅读一个页面的内容,以获取对URL的引用。内容如下所示: <form method="get" action="/errors/validateCaptcha" name=""> <input type=hidden name="amzn" value="VGNBhB9ceCBo2YWErppFwA==" /><input type=hidden name="amzn-r"
<form method="get" action="/errors/validateCaptcha" name="">
<input type=hidden name="amzn" value="VGNBhB9ceCBo2YWErppFwA==" /><input type=hidden name="amzn-r" value="/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=1573624098" /><input type=hidden name="amzn-pt" value="NoPageType" />
我正在尝试读取字段amzn-r
。但是,正如您所看到的,它包含像/代码>,和#061代码>,等等,它们转换为%2F
和%3D
。任何通过代码标准URL编码的方法都无法改变这一点,因为我猜它已经编码了。我正在使用.Net。您可以使用System.Web library中提供的方法。
用法是传递字符串以解码值
因此,在你的情况下:
HttpUtility.HtmlDecode(/;s/;ref=;nb#sb#noss?url=;search-;别名%;3Daps&;字段-;关键字=;1573624098”)代码>
收益率:
/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=1573624098
我想这就是你想要的。要完成Arunster的答案,你需要同时使用HtmlDecode()
和UnescapeDataString()
将其转换为直接URL。您不需要通过System.Web
命名空间调用它,因为这将要求您将System.Web引用包含到项目中,而默认情况下,桌面应用程序中不可用。相反,您可以使用以下备选方案:
string PlainURL = System.Uri.UnescapeDataString( System.Net.WebUtility.HtmlDecode("/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=1573624098"))
谢谢,是的,这就是我要找的。