URL パラメーターを使用する場合、特殊文字がデータに干渉するのを防ぐためにエンコードされた文字列が使用されることがよくあります。この記事では、C# を使用してこのようなエンコードされたパラメーターをデコードする方法について説明します。
例として次の URL を考えてみましょう:
my.aspx?val=%2Fxyz2F
このエンコードされたパラメーター値をデコードするには、次のメソッドを利用できます。
Uri.UnescapeDataString(string) メソッドは、URL パラメーターをデコードするための簡単なオプションです。エンコードされた文字列を入力として受け取り、デコードされた値を返します。
たとえば、URL パラメーターの例をデコードするには:
string decodedUrl = Uri.UnescapeDataString("my.aspx?val=%2Fxyz2F");
An代替アプローチは、URL パラメーターもデコードする HttpUtility.UrlDecode(string) メソッドを使用することです。
string decodedUrl = HttpUtility.UrlDecode("my.aspx?val=%2Fxyz2F");
一部の URL パラメーターは完全にエンコードされる可能性があることに注意してください。これは、複数のエンコード層が含まれていることを意味します。これに対処するには、ループベースのアプローチを採用できます。
private static string DecodeUrlString(string url) { string newUrl; while ((newUrl = Uri.UnescapeDataString(url)) != url) url = newUrl; return newUrl; }
このアプローチにより、URL に複数のレベルのエンコードが含まれている場合でも、完全にデコードされます。
以上がC# でエンコードされた URL パラメーターをデコードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。