URLエンコード・デコード一括変換
URLのpercent-encoding(encodeURIComponent / decodeURIComponent互換)を複数行まとめて変換します。1行=1データで一括処理し、不正な入力は明確にエラー表示します。
入力例
結果
入力して「一括変換」を押してください。
このツールでできること
URLエンコード・デコードにまつわる主な機能です。
- encodeURIComponent/decodeURIComponent互換のURLエンコード・デコードができます
- 複数行を一括で変換できます(1行=1データ)
- 各行を独立して処理します(部分成功。一部の行が不正でも他の行は変換されます)
- 空行・前後の空白を保持します(自動trimしません)
- 不正なpercent-encoding・不正なUTF-8・不対サロゲート等を行単位でエラー表示します
- 変換に成功した行だけをまとめてコピーできます(失敗した行は除外し件数を明示します)
手順を見る
- モードで「エンコード」または「デコード」を選びます既定は「エンコード」です
- 変換したい文字列を1行1データで入力します空行・前後の空白もそのまま処理対象になります
- 「一括変換」を押します
- 結果を確認し、必要なら「一括コピー」で成功した行だけをまとめてコピーします失敗した行があれば除外件数が表示されます
こんなときに使えます
こんな場面でURLエンコード・デコードが役立ちます。
利用シーンを見る
- URLのクエリパラメータに含める値を、事前にpercent-encodingしておきたいとき
- 「%E3%81...」のようなpercent-encoded文字列を、人が読める形に戻して確認したいとき
- APIレスポンスやログに記録された、URLエンコード済みの値の中身を確認したいとき
- 複数の文字列をまとめてエンコード・デコードしたいとき
- 「+」と「%20」、「%2B」の違いを実際の変換結果で確認したいとき
URLエンコード・デコードの仕組みと注意点
詳しい解説を見る
URLエンコード(percent-encoding)とは
URLで安全に使える文字は限られており、日本語や一部の記号はそのままでは使えません。それらの文字をUTF-8のバイト列に変換し、各バイトを%XX(2桁の16進数)で表す方式がpercent-encodingです。本ツールはこの変換を複数行まとめて行います。
encodeURIComponent / decodeURIComponentとの互換性
本ツールの変換は、JavaScript標準のencodeURIComponent/decodeURIComponentと同じ未エスケープ文字集合(A-Za-z0-9 - _ . ! ~ * ' ( ))・同じ変換結果になるよう実装されています。クエリパラメータの値など、URLの中の「1つの値」を対象にした変換です。
「+」とスペースの違い
本ツールはapplication/x-www-form-urlencoded(HTMLフォーム送信で使われる、スペースを+に変換する形式)専用の処理は行いません。エンコード時、スペースは%20になります(+にはなりません)。また+という文字自体は%2Bにエンコードされます。デコード時も、入力中の生の+はスペースへ変換せず、+のまま出力します。
不正な入力は自動補正せずエラーになります
%の後に2桁の16進数が続かない場合や、デコード結果が不正なUTF-8バイト列になる場合、対になっていないサロゲートが含まれる場合は、自動的に補正せずエラーとして表示します。1行のエラーは他の行の結果に影響しません(行ごと独立処理)。
URL全体の変換ツールではありません
本ツールはencodeURIComponent/decodeURIComponentと同じ「値単位」の変換を行うツールであり、スキームやホスト名を含むURL全体をそのまま安全に変換する専用パーサー・正規化ツールではありません。URL全体を貼り付けると、本来変換すべきでない:や/等の記号もすべてpercent-encodeされてしまうため、クエリパラメータの値など変換したい部分だけを入力してください。
よくある質問
URL全体をそのまま入力してもいいですか?
推奨しません。本ツールはencodeURIComponent/decodeURIComponentと同じ「値単位」の変換を行うため、http://やホスト名を含むURL全体を入力すると、「:」や「/」のような本来変換したくない文字までpercent-encodeされてしまいます。クエリパラメータの値など、変換したい部分だけを入力してください。
「+」はスペースとしてデコードされますか?
いいえ。本ツールはapplication/x-www-form-urlencoded(フォーム送信用の形式)には対応していないため、入力中の「+」はスペースへ変換せず、そのまま「+」として出力します。スペースは「%20」と表記されます。
「%20」と「+」の違いは何ですか?
どちらも「スペース」を表すために使われることがありますが、意味が異なります。「%20」はencodeURIComponentが生成する標準的なスペースの表現です。「+」は別の形式(application/x-www-form-urlencoded)でスペースを表す文字であり、本ツールはこの形式のデコードを行わないため、「+」はスペースに変換されず「+」のまま扱われます。
日本語や絵文字もエンコードできますか?
可能です。日本語や絵文字を含む文字列はUTF-8のバイト列に変換され、各バイトが%XX形式でエンコードされます(例: 「あ」→「%E3%81%82」)。
不正なpercent-encodingを入力した場合はどうなりますか?
該当する行だけがエラーとして表示され、行番号と簡単な理由が示されます。自動的に修正することはなく、他の正常な行の変換結果には影響しません。
入力したデータはサーバーへ送信されますか?
いいえ。エンコード・デコードの処理はすべてブラウザ内で完結しており、入力内容がサーバーへ送信されることはありません。