URLのデコード・アンエスケープを行うためのメソッドとしてHttpUtility.UrlDecodeとUri.UnescapeDataStringの二つがある。 それぞれの違いは下表の通り。
相違点 | HttpUtility.UrlDecode | Uri.UnescapeDataString |
アセンブリ | System.Web.dll | System.dll |
エンコーディングの指定 | 可 | 不可(UTF-8のみ) |
URL中の'+'の扱い | 空白に置換 | そのまま |
事前にUri.UnescapeDataStringに渡す文字列の'+'を'%20'に置換すればHttpUtility.UrlDecodeの結果と同じになる一方で、
- UTF-8以外でエンコードされた文字列を扱う必要があるか
- System.Web.dllを参照することが望ましいか
どうかによってどちらを使うか判断する必要がある。