てもりやてもりや

URLエンコード/デコードのアイコンURLエンコード/デコード

URLエンコード(パーセントエンコーディング)/デコードを即座に実行。

入力内容はサーバーに送信されません

入力

変換結果

条件を入力してください

URLエンコードとは

URLエンコード(パーセントエンコーディング)は、URLの中で使用できない文字を「%XX」形式(16進数2桁)に変換する処理です。RFC 3986で定義されており、URLで安全に使える文字はアルファベット・数字・ハイフン・アンダースコア・ピリオド・チルダに限られています。

日本語はUTF-8エンコーディングで1文字あたり3バイトになるため、「東京」は「%E6%9D%B1%E4%BA%AC」のように9文字×2文字で18文字に変換されます。スペースは「%20」または「+」(フォームデータの場合)に変換されます。

URLエンコードが必要な場面

  • クエリパラメータに日本語を含める時?keyword=東京 を正しく渡すには ?keyword=%E6%9D%B1%E4%BA%AC に変換する必要があります。
  • APIリクエストのパラメータ構築:fetch / axiosなどでAPIを呼び出す際、パラメータの値をエンコードして安全に渡します。
  • フォームデータの送信:HTMLフォームのGET送信では、ブラウザが自動でエンコードしますが、JavaScriptで動的にURLを構築する場合は手動でエンコードが必要です。
  • リダイレクトURLの構築:URLパラメータとして別のURLを渡す際に、「/」「?」「#」などを%エンコードして衝突を避けます。

注意点・よくある落とし穴

  • 二重エンコードに注意:すでにエンコードされた文字列を再度エンコードすると「%」が「%25」になり、「%20」が「%2520」になります。デコードしてから必要に応じて再エンコードしてください。
  • encodeURIとencodeURIComponentを使い分ける:JavaScriptで処理する場合、URL全体にはencodeURI、パラメータ値にはencodeURIComponentを使います。
  • %20と+の使い分け:スペースのエンコードは文脈によって異なります。クエリパラメータでは「%20」が安全ですが、フォームデータ(application/x-www-form-urlencoded)では「+」が使われることがあります。

よくある質問

URLエンコードとは?

URLで使えない文字(日本語、スペース等)を%XX形式に変換する処理です。RFC 3986で定義されており、例えば「東京」は"%E6%9D%B1%E4%BA%AC"になります。

encodeURIとencodeURIComponentの違いは?

encodeURIはURL全体用(:/?#&=等を変換しない)、encodeURIComponentはパラメータ値用(ほぼ全ての特殊文字を変換)です。クエリパラメータの値をエンコードする場合はencodeURIComponentを使います。

いつ使う?

URLのクエリパラメータに日本語を含める時、APIリクエスト時、フォームのPOST送信時、リダイレクトURLの構築時などに使います。

%20と+の違いは?

どちらもスペースを表しますが使われる場所が異なります。%20はRFC 3986準拠のパーセントエンコーディング、+はフォームデータ(application/x-www-form-urlencoded)での表現です。クエリパラメータでは%20が安全です。

二重エンコードとは?

すでにエンコードされた文字列を再度エンコードしてしまうことです。例えば「%20」が「%2520」になります。デコードしてからエンコードするか、エンコード済みかを確認してから処理してください。

日本語はなぜ長くなる?

日本語はUTF-8で1文字あたり3バイト使うため、パーセントエンコード後は1文字が「%XX%XX%XX」の9文字になります。「東京」(2文字)は「%E6%9D%B1%E4%BA%AC」の18文字になります。

免責事項

  • 本ツールはブラウザ上で動作する簡易URLエンコード/デコードツールです。変換結果の正確性を保証するものではありません。
  • 機密情報の取り扱いにはご注意ください。入力内容はサーバーに送信されませんが、ブラウザのメモリ上で処理されます。
  • 本ツールの利用により生じた損害について、当サイトは一切の責任を負いません。

開発ツールの関連ツール