我不确定这个问题的主题是否合适。这是一个问题:
我正在阅读页面内容以获取对URL的引用。内容如下所示:
<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
。但是,您可以看到它包含/
,=
等字符,这些字符会转换为%2F
和%3D
。任何通过代码执行此操作的方法 - 标准URL编码无法更改此内容,因为我猜测它已编码。我正在使用.Net。
答案 0 :(得分:1)
您可以使用System.Web库中提供的HttpUtility.HtmlDecode方法。 用法是传递字符串以解码值。
所以,在你的情况下:
HttpUtility.HtmlDecode("/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=1573624098");
产量:
/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=1573624098
我想这就是你要找的东西。
答案 1 :(得分:1)
要完成Arunster的回答,您需要同时使用HtmlDecode()
和UnescapeDataString()
将其转换为直接网址。您无需通过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"))