Как декодировать параметр URL с помощью С#?

Как декодировать параметр кодированного URL с помощью С#?

Например, возьмите этот URL:

my.aspx?val=%2Fxyz2F

Ответ 1

Server.UrlDecode(xxxxxxxx)

Ответ 2

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;
}

Ответ 4

Попробуйте следующее:

string decodedUrl = HttpUtility.UrlDecode("my.aspx?val=%2Fxyz2F");

Ответ 5

Пытаться:

var myUrl = "my.aspx?val=%2Fxyz2F";
var decodeUrl = System.Uri.UnescapeDataString(myUrl);

Ответ 6

Как решение для работы, я могу предложить создать метод расширения, который может как-то декодировать ваш 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;

    }
}

Надеюсь, это поможет!