URLエンコード
日本語や記号を URL エンコード / デコード。パラメータ用と URL 全体用を切替。貼った瞬間に判定。
このツールについて
URL には使える文字が決まっており、日本語やスペース、&・?・# などの記号はそのまま入れられません。これらを %XX の形(パーセントエンコーディング)に変換するのが URL エンコードです。逆に %XX を元の文字へ戻すのがデコードです。このツールは両方向の変換をブラウザ内で行い、入力を外部へ送信しません。
どんなときに必要?
- クエリ文字列に値を入れるとき(例: 検索語に & や = が含まれる)。
- 日本語を含む URL を扱うとき(リンクの共有、リダイレクト先の指定など)。
- フォームの送信データを組み立てるとき。
エンコードを忘れると、値の中の & や = がパラメータの区切りと誤解され、意図しない形でサーバーに渡ってしまうことがあります。
encodeURI と encodeURIComponent の違い
プログラムで扱うときによく混同されるのがこの 2 つです。encodeURI は「URL 全体」を対象とし、: / ? & = などの区切り記号はエンコードしません。一方 encodeURIComponent は「値ひとつ(パラメータの中身)」を対象とし、区切り記号も含めてエンコードします。クエリの値を入れるときは encodeURIComponent を使うのが基本です。全体を一度に encodeURI してしまうと、値に含まれる & がエンコードされず区切りと衝突する、といった不具合が起きます。
二重エンコードとスペースの罠
- 二重エンコード … すでにエンコード済みの文字列をもう一度エンコードすると、% が %25 に化けて「%2520」のような二重の状態になります。元データがエンコード済みかどうかを確認してから変換しましょう。
- スペースの扱い … URL の経路部分では %20、古いフォーム送信(application/x-www-form-urlencoded)では + で表されることがあります。文脈によって扱いが異なる点に注意してください。
使い方
- 「エンコード」を選び、テキストを入力すると URL エンコード文字列に変換されます。
- パラメータ用(区切り記号もエスケープ)か URL 全体用かを切り替えられます。
- 「デコード」を選ぶと %XX 形式を元のテキストに戻します。
よくある質問
encodeURI と encodeURIComponent の違いは何ですか?
encodeURI は URL 全体を対象とし、: / ? & などの区切り記号は残します。encodeURIComponent はクエリの「値」を対象とし、区切り記号も含めてエスケープします。パラメータ値には後者が適しています。
入力データは送信されますか?
いいえ。エンコード・デコードはすべてブラウザ内で行われ、入力は外部へ送信されません。
スペースは %20 と + のどちらになりますか?
パーセントエンコーディングではスペースは %20 です。+ は主に application/x-www-form-urlencoded(フォーム送信)でスペースを表す記法で、文脈により異なります。
日本語はどう変換されますか?
日本語は UTF-8 のバイト列に変換され、各バイトが %XX として並びます。例えば「あ」は %E3%81%82 になります。
すでにエンコード済みの文字列を再エンコードすると?
% 自体も %25 に変換されるため、二重エンコードになります。元の文字列が生かエンコード済みかを確認してから変換してください。
どんな場面で使いますか?
検索クエリやトラッキングパラメータに日本語・記号を含める場合や、壊れた URL のパラメータを人が読める形に戻したい場合に使います。