モジュール java.base
パッケージ java.net

クラスURLDecoder


  • public class URLDecoder
    extends Object
    HTML形式をデコードするためのユーティリティ・クラスです。 このクラスには、application/x-www-form-urlencoded MIME形式からStringをデコードするためのstaticメソッドが含まれます。

    その変換処理は、URLEncoderクラスによって使用される処理の逆になります。 エンコード済み文字列に含まれる文字は必ず、次のいずれかであると仮定されます。"a" - "z"、"A" - "Z"、"0" - "9"、"-"、"_"、"."、"*"。 文字%は使用可能ですが、これは、特殊なエスケープ・シーケンスの開始と解釈されます。

    次の表記ルールが適用されます。

    • 英数字文字のaからzAからZ、および0から9は元のまま残します。
    • 特殊文字の.-*、および_は元のまま残します。
    • プラス記号+を空白文字 に変換します。
    • %xyという形式のシーケンスは、バイトの表現として扱われます。ここで、xyは8ビットを2桁の16進数で表現したものです。 次に、それらのバイト・シーケンスを連続して1つ以上含む部分文字列はすべて、エンコーディング結果がそれらの連続したバイトになるような文字へと置換されます。 これらの文字のデコードに使用するエンコーディング方式は指定可能であるが、指定しなかった場合には、プラットフォームのデフォルトのエンコーディングが使用されます。

    このデコーダが不正な文字列を処理する際に使用できる方法は、2つあります。 不正な文字をそのまま残すこともできますし、IllegalArgumentExceptionをスローすることもできます。 デコーダがどちらの方法を取るかは、実装によって異なります。

    導入されたバージョン:
    1.2
    • コンストラクタの詳細

      • URLDecoder

        public URLDecoder()
    • メソッドの詳細

      • decode

        @Deprecated
        public static String decode​(String s)
        非推奨。
        プラットフォームのデフォルトのエンコーディングに応じて、結果として得られる文字列が変わる可能性があります。 代わりに、decode(String,String)メソッドを使ってエンコーディングを指定するようにしてください。
        x-www-form-urlencoded文字列をデコードします。 プラットフォームのデフォルトのエンコーディングに基づいて、%xyという形式の任意の連続するシーケンスがどの文字を表しているかが決定されます。
        パラメータ:
        s - デコードするString
        戻り値:
        新しくデコードされたString
      • decode

        public static String decode​(String s,
                                    Charset charset)
        特定のCharsetを使用してapplication/x-www-form-urlencoded文字列をデコードします。 指定された文字セットは、どの文字が "%xy"という形式の連続したシーケンスによって表されるかを判断するために使用されます。

        注: World Wide Web Consortium Recommendationには、UTF-8を使用すべきであると明記されています。 そうしなかった場合、互換性を確保できなくなる可能性があります。

        実装上の注意:
        この実装は、不正な文字列が見つかった場合にIllegalArgumentExceptionをスローします。
        パラメータ:
        s - デコードするString
        charset - 指定された文字セット
        戻り値:
        新しくデコードされたString
        例外:
        NullPointerException - sまたはcharsetnullの場合
        IllegalArgumentException - 実装が不正な文字に遭遇した場合
        導入されたバージョン:
        10
        関連項目:
        URLEncoder.encode(java.lang.String, java.nio.charset.Charset)