UnitConv
URLエンコード

URL エンコード / デコード

URLで安全に使えるようテキストをパーセントエンコード・デコード

このツールについて

このURLエンコーダーは、Webアドレス内に安全に置けるようテキストをパーセントエンコード形式に変換し、%XX列を読みやすいテキストに戻します。URLには限られた文字しか使えないため、スペース・アンパサンド・スラッシュ・非ASCII文字はクエリ文字列やパスに入れる前にエスケープが必要です。コンポーネントモード(encodeURIComponent)は & = ? / などの予約文字もエスケープし、単一のパラメータ値に適しています。完全URLモード(encodeURI)は構造を表す文字を残し、アドレス全体が使える状態を保ちます。

使い方

  1. 1 テキストをURL安全にするなら「エンコード」、戻すなら「デコード」を選びます。
  2. 2 単一のパラメータ値なら「コンポーネント」、アドレス全体なら「完全URL」を選びます。
  3. 3 入力欄にテキストを入力または貼り付けます。
  4. 4 パーセントエンコード(またはデコード)結果をコピー、「入れ替え」で方向を反転できます。

仕組み

パーセントエンコードは、安全でない文字をパーセント記号とそのバイト値の16進数に置き換えます。スペースは%20、アンパサンドは%26、スラッシュは%2Fになります。ASCII外の文字はまずUTF-8として符号化され、各バイトが%XXとして書かれるため、1つの非ラテン文字が複数のパーセント列に展開されることがあります。コンポーネントモードは予約区切り文字 & = ? / # もエスケープし、値が周囲のクエリ文字列を壊さないようにします。だからencodeURIComponent("a b&c")はa%20b%26cになります。完全URLモードはこれらの区切りを保持し、アドレス全体の構造を有効に保ちます。

よくある質問

URL(パーセント)エンコードとは何ですか?

URLで許可されない文字を、%記号とその文字の16進バイト値に置き換える方式です。これによりどんなテキストもアドレス内で安全に運べます。

コンポーネントと完全URL、どちらを使うべきですか?

クエリパラメータなど単一の値にはコンポーネントを使います(& = ? / をエスケープ)。アドレス全体をエンコードするときは、構造文字を残す完全URLを使います。

なぜスペースは%20になるのですか?

スペースはURLで許可されないため、バイト値0x20を%20として書いて置き換えます。クエリ文字列では代わりに+記号が使われることもあります。

絵文字やアクセント付き文字はどう扱われますか?

まずUTF-8バイトに符号化され、各バイトが%XX列になります。そのため1文字が複数のパーセント列になることがありますが、正確に元へデコードされます。

関連ツールと用途

バイナリデータの符号化にはBase64エンコーダーを使います。各パーセント列の裏にあるバイト値を調べるならASCII/Unicode変換、それらを16進で読むなら基数変換が役立ちます。