メインコンテンツへスキップ
FreeOnlineTools Go
日本語
説明

URLエンコーディングとは?パーセントエンコーディングの完全な解説

FreeOnlineTools Team 著 · 2026-09-02を更新しました

簡単な回答

URL エンコード (パーセント エンコード) は、URL 内の安全でない文字を % とそれに続く 2 つの 16 進数に置き換えます。たとえば、スペースは %20 になり、& は %26 になります。これにより、URLs を曖昧さなく送信できるようになります。無料の URL エンコーダとデコーダを使用してブラウザで変換します。

導入

URL エンコード (パーセント エンコードとも呼ばれる) は、インターネット上で安全に送信できるように、特殊文字を URL でエンコードするためのメカニズムです。 URLs には、文字、数字、およびいくつかの予約文字など、限られた ASCII 文字セットのみを含めることができます。その他の文字 (スペース、引用符、非 ASCII 文字) は、パーセント記号 (%) の後に文字のバイト値を表す 2 つの 16 進数が続く形式でエンコードする必要があります。 URL エンコードは RFC 3986 で定義されています。

ステップバイステップ

  1. どの文字にエンコードが必要かを理解する

    予約されていない文字 (A ~ Z、a ~ z、0 ~ 9、-、_、.、~) はエンコードする必要がありません。予約文字 (:、/、?、#、[、]、@、!、$、&、'、(、)、*、+、,、;、=) は、URLs では特別な意味を持ち、データとして使用する場合はエンコードする必要があります。他のすべての文字 (スペース、引用符、非 ASCII) はエンコードする必要があります。

  2. エンコードの仕組みを学ぶ

    エンコードが必要な各文字は UTF-8 バイト シーケンスに変換され、各バイトは %XX (XX は 16 進値) として表されます。スペース (0x20) → %20。非 ASCII 文字 'é' (UTF-8: 0xC3 0xA9) → %C3%A9。

  3. encodeURI と encodeURIComponent を区別する

    encodeURI() は完全な URL をエンコードしますが、URL 構造の一部である予約文字 (:/?&=) は保持します。 encodeURIComponent() は、予約されていない文字を除くすべてをエンコードします。予約された文字が構造体ではなくデータであるクエリ パラメーター値に使用します。

  4. パーセントエンコードされた URLs をデコードします

    デコードするとエンコードが逆になります: %20 → スペース、%C3%A9 → é。完全な URLs には decodeURI() を使用し、クエリ パラメーター値には decodeURIComponent() を使用します。無効なエスケープ シーケンス (%ZZ など) はエラーをスローします。

例

スペースをエンコードする

入力: hello world

出力: hello%20world

非 ASCII テキストをエンコードする

入力: café

出力: caf%C3%A9

クエリパラメータ値をエンコードする

入力: name=John Doe & Co.

出力: name%3DJohn%20Doe%20%26%20Co.

よくある問題

  • 値のみエンコードが必要な場合の URL 全体のエンコード - URL 構造 (://?&=) ではなく、クエリ パラメーター値をエンコードします。
  • 二重エンコーディング - URL がすでにエンコードされている場合、再度エンコードすると %20 ではなく %2520 が生成されます。既にエンコードされているかどうか不明な場合は、まずデコードしてください。
  • encodeURI と encodeURIComponent の誤った使用 - encodeURI は URL 構造文字を保持します。 encodeURIComponent はそれらをエンコードします。後者はクエリ パラメーター値に使用します。
  • 無効なエスケープ シーケンス —%ZZ または末尾の単一の % は無効であり、デコード時にエラーがスローされます。

ヒント

  • URL インジェクションを防ぐために、スペース、特殊文字、またはユーザー入力を含む可能性のあるクエリ パラメーター値を常にエンコードしてください。
  • クエリ パラメーター値には encodeURIComponent() を使用し、安全でない文字をエンコードする必要がある完全な URLs には encodeURI() を使用します。
  • URL エンコードは暗号化ではありません。誰でもデコードできます。機密データを隠すためには決して使用しないでください。
  • URL エンコーダーとデコーダーを使用して、ブラウザーで瞬時にプライベート変換を行います。

関連ツール

関連ガイド

参考文献