0

デコード結果

URLエンコーディング

エンコード結果

URLエンコーディング
スペース

URLエンコーディングについて

URLエンコーディングは、URLに含める文字列を安全に表すための符号化方式です。正式には、URIの仕様である RFC 3986 で定義される「パーセントエンコーディング (percent-encoding)」と呼ばれます。

URLで特別な意味を持つ文字や、URLとしてそのまま扱いにくい文字を、パーセント記号 (%) と16進数2桁の形式に変換します。

例えば、半角スペースは %20、感嘆符 (!) は %21、日本語の「あ」はUTF-8では %E3%81%82 と表されます。

URLエンコーディングでは、文字列を指定された文字コードのバイト列に変換し、各バイトを必要に応じて %HH の形式で表します。DenCodeでは、RFC 3986の未予約文字である英数字と -._~ は変換せず、そのほかの文字をパーセントエンコードします。

文字URLエンコーディング後説明
AA英数字は未予約文字のため変換しません。
---._~ は未予約文字のため変換しません。
/%2FURLのパス区切り文字としての意味を持つため、値として扱う場合はエンコードします。
?%3Fクエリ文字列の開始を表す予約文字です。
&%26クエリパラメーターの区切りとして使われる予約文字です。
=%3Dクエリパラメーターの名前と値の区切りとして使われる予約文字です。
半角スペース%20URLのパーセントエンコーディングでは %20application/x-www-form-urlencoded では + にエンコードします。
+%2B+ そのものを値として扱う場合はエンコードが必要です。
%E3%81%82UTF-8では3バイトの列としてエンコードします。

例えば、「Hello, world!」をURLエンコーディングすると以下のようになります。

Hello%2C%20world%21

この例では、カンマ (,) が %2C、半角スペースが %20、感嘆符 (!) が %21 に変換されています。

application/x-www-form-urlencoded のスペース表記

HTMLフォームの送信などで使われる application/x-www-form-urlencoded では、半角スペースを + として表すことがあります。この形式は HTML Standard のフォーム送信で使われるエンコーディングとして定義されています。

DenCodeでは、エンコード時のオプションで半角スペースを %20 または + のどちらで出力するかを選択できます。

形式「Hello world」の変換結果用途
パーセントエンコーディングHello%20worldURL一般で使いやすい形式です。
application/x-www-form-urlencodedHello+worldHTMLフォームのクエリ文字列やリクエスト本文で使われる形式です。