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