URL エンコード / デコード
URLで安全に使えるようテキストをパーセントエンコード・デコード
このツールについて
このURLエンコーダーは、Webアドレス内に安全に置けるようテキストをパーセントエンコード形式に変換し、%XX列を読みやすいテキストに戻します。URLには限られた文字しか使えないため、スペース・アンパサンド・スラッシュ・非ASCII文字はクエリ文字列やパスに入れる前にエスケープが必要です。コンポーネントモード(encodeURIComponent)は & = ? / などの予約文字もエスケープし、単一のパラメータ値に適しています。完全URLモード(encodeURI)は構造を表す文字を残し、アドレス全体が使える状態を保ちます。
使い方
- 1 テキストをURL安全にするなら「エンコード」、戻すなら「デコード」を選びます。
- 2 単一のパラメータ値なら「コンポーネント」、アドレス全体なら「完全URL」を選びます。
- 3 入力欄にテキストを入力または貼り付けます。
- 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進で読むなら基数変換が役立ちます。