本文へスキップ
ToolDesk

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)では + で表されることがあります。文脈によって扱いが異なる点に注意してください。

使い方

  1. 「エンコード」を選び、テキストを入力すると URL エンコード文字列に変換されます。
  2. パラメータ用(区切り記号もエスケープ)か URL 全体用かを切り替えられます。
  3. 「デコード」を選ぶと %XX 形式を元のテキストに戻します。

よくある質問

encodeURI と encodeURIComponent の違いは何ですか?

encodeURI は URL 全体を対象とし、: / ? & などの区切り記号は残します。encodeURIComponent はクエリの「値」を対象とし、区切り記号も含めてエスケープします。パラメータ値には後者が適しています。

入力データは送信されますか?

いいえ。エンコード・デコードはすべてブラウザ内で行われ、入力は外部へ送信されません。

スペースは %20 と + のどちらになりますか?

パーセントエンコーディングではスペースは %20 です。+ は主に application/x-www-form-urlencoded(フォーム送信)でスペースを表す記法で、文脈により異なります。

日本語はどう変換されますか?

日本語は UTF-8 のバイト列に変換され、各バイトが %XX として並びます。例えば「あ」は %E3%81%82 になります。

すでにエンコード済みの文字列を再エンコードすると?

% 自体も %25 に変換されるため、二重エンコードになります。元の文字列が生かエンコード済みかを確認してから変換してください。

どんな場面で使いますか?

検索クエリやトラッキングパラメータに日本語・記号を含める場合や、壊れた URL のパラメータを人が読める形に戻したい場合に使います。

関連ツール