web-dev-qa-db-ja.com

C#を使用してURLパラメーターをデコードするにはどうすればよいですか?

C#を使用してエンコードされたURLパラメーターをデコードするにはどうすればよいですか?

たとえば、次のURLを使用します。

my.aspx?val=%2Fxyz2F
136
Tom
Server.UrlDecode(xxxxxxxx)
96
TheVillageIdiot
string decodedUrl = Uri.UnescapeDataString(url)

または

string decodedUrl = HttpUtility.UrlDecode(url)

URLは1回の呼び出しで完全にデコードされません。完全にデコードするには、ループ内で次のメソッドのいずれかを呼び出すことができます。

private static string DecodeUrlString(string url) {
    string newUrl;
    while ((newUrl = Uri.UnescapeDataString(url)) != url)
        url = newUrl;
    return newUrl;
}
265
ogi

HttpServerUtility.UrlDecode または HttpUtility.UrlDecode を試しましたか?

76
Jon Skeet

これを試して:

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

試してください:

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