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

クラスURLDecoder

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

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

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

    コンストラクタ 
    コンストラクタ 説明
    URLDecoder()  
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    static String decode​(String s)
    Deprecated.
    プラットフォームのデフォルトのエンコーディングに応じて、結果として得られる文字列が変わる可能性があります。
    static String decode​(String s, String enc)
    特定のコード体系を使用してapplication/x-www-form-urlencoded文字列をデコードします。
    static String decode​(String s, Charset charset)
    特定のCharsetを使用してapplication/x-www-form-urlencoded文字列をデコードします。

    クラス java.lang.Objectで宣言されたメソッド

    cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait
  • コンストラクタの詳細

  • メソッドの詳細

    • decode

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

      public static String decode​(String s, String enc) throws UnsupportedEncodingException
      特定のコード体系を使用してapplication/x-www-form-urlencoded文字列をデコードします。

      このメソッドは、decode(java.lang.String,java.nio.charset.Charset)と同じように動作しますが、「文字セットを参照」は指定されたエンコーディング名を使用します。

      実装上のノート:
      この実装は、不正な文字列が見つかった場合にIllegalArgumentExceptionをスローします。
      パラメータ:
      s - デコードするString
      enc - サポートされる文字エンコーディングの名前。
      戻り値:
      新しくデコードされたString
      例外:
      UnsupportedEncodingException−文字エンコーディングを参照する必要があるが、指定された文字エンコーディングがサポートされていない場合
      導入されたバージョン:
      1.4
      関連項目:
      URLEncoder.encode(java.lang.String, java.lang.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)