Как декодировать параметр кодированного URL с помощью С#?
Например, возьмите этот URL:
my.aspx?val=%2Fxyz2F
Как декодировать параметр кодированного URL с помощью С#?
Например, возьмите этот URL:
my.aspx?val=%2Fxyz2F
Server.UrlDecode(xxxxxxxx)
string decodedUrl = Uri.UnescapeDataString(url)
или
string decodedUrl = HttpUtility.UrlDecode(url)
Url не полностью декодируется одним вызовом. Чтобы полностью декодировать, вы можете вызвать один из этих методов в цикле:
private static string DecodeUrlString(string url) {
string newUrl;
while ((newUrl = Uri.UnescapeDataString(url)) != url)
url = newUrl;
return newUrl;
}
Вы пробовали HttpServerUtility.UrlDecode
или HttpUtility.UrlDecode
?
Попробуйте следующее:
string decodedUrl = HttpUtility.UrlDecode("my.aspx?val=%2Fxyz2F");
Пытаться:
var myUrl = "my.aspx?val=%2Fxyz2F";
var decodeUrl = System.Uri.UnescapeDataString(myUrl);
Как решение для работы, я могу предложить создать метод расширения, который может как-то декодировать ваш URL-адрес:
public static class DecodeString
{
public static string ToDecodeString(this string x)
{
if (x.Contains("%2B"))
{
x = x.Replace("%2B", "+");
}
if (x.Contains("%2F"))
{
x = x.Replace("%2F", "/");
}
if (x.Contains("%3D"))
{
x = x.Replace("%3D", "=");
}
return x;
}
}
Надеюсь, это поможет!