URL エンコードとは?
URL に使える文字は限られています。日本語、スペース、そして &、=、? のように URL の中で特別な意味を持つ記号は、URL パラメータに入れる前にエンコードする必要があります。URL エンコード(パーセントエンコーディング)は各文字を UTF-8 のバイトに変換し、% と 2 桁の 16 進数で表します。たとえば「中」は %E4%B8%AD になります。
使い方
- 「エンコード」または「デコード」を押して方向を選びます。選んだボタンが強調表示されます。
- 「入力」に入力します。「自動変換」がオンなら、入力を止めるとすぐに結果が表示されます。
- 「結果を入力に戻す」を押すと結果が左に移り、方向も反転します。
スペースは %20 と + のどちら?
- %20(既定):URL の標準 RFC 3986 に従った形式で、URL のどこでも使えます。
- +:HTML フォームを送信するときの形式(
application/x-www-form-urlencoded)。「スペースを + にする」をオンにします。デコード時も+をスペースとして扱います。
例
a b&c=中文 をエンコードすると:
a%20b%26c%3D%E4%B8%AD%E6%96%87
JavaScript の encodeURIComponent との違いは?
結果はほぼ同じです。このツールは RFC 3986 に従い、!、'、(、)、* の 5 文字もエンコードし、英数字と -、_、.、~ だけを残します。そのほうが、さまざまなサーバーで問題が起きにくくなります。
エンコード範囲と URL の解析
- パラメータ値(既定):特殊文字をすべてエンコードします。
?q=の後ろに入れる値に適しています。 - URL 全体:
: / ? & = #などの URL の構造を保ち、日本語、スペース、[ ] |などの記号のように URL に使えない文字だけをエンコードします。たとえばhttps://example.com/咖啡?q=拿 鐵はhttps://example.com/%E5%92%96%E5%95%A1?q=%E6%8B%BF%20%E9%90%B5になります。 - URL を解析:「URL を解析」を押すと、URL をプロトコル、ホスト、ポート、パス、フラグメントに分け、各クエリパラメータをデコードして表に一覧表示します。同じパラメータが複数あってもそれぞれ表示します。クエリ内の
+はサーバーと同じくスペースとして扱います。
よくある質問
URL 全体をエンコードできますか?
既定の「パラメータ値」で URL 全体をエンコードすると、://、?、& までエンコードされ、URL として使えなくなります。URL 全体を扱うときは「エンコード範囲」を「URL 全体」にしてください。URL の構造を保ったまま、URL に使えない文字だけがエンコードされます。単独の値には「パラメータ値」を使います。
デコードすると「有効な URL エンコード文字列ではありません」と表示されます
% の後には 16 進数(0–9、A–F)が 2 桁続く必要があります。100% のように単に % 記号を含むだけのテキストは、もともとエンコードされていないのでデコードは不要です。
%2520 はどういう意味?
2 回エンコードされています。% 自体がさらに %25 にエンコードされた状態です。もう一度デコードすると元に戻ります。