モジュール 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
関連項目:
  • メソッドの詳細

    • 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, 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
      関連項目:
    • 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
      関連項目: