スペースと + と % の URL エンコード
スペース、+、% の 3 文字は、変換の方法によって結果が変わります。encodeURIComponent、encodeURI、フォーム送信の 3 通りの結果を並べました。
この表の文字: 3 文字
エンコード表
| 方式 | 空白 | + | % | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
encodeURI| %20 | %2B | %25 | encodeURI | %20 | + | %25 | フォーム送信 | + | %2B | %25 | 符号位置 | U+0020 | U+002B | U+0025 | UTF-8
(16 進) | 20 | 2B | 25 | RFC 3986 の
区別 | その他 | 予約 (sub-delims) | その他 | |
エンコード結果は JavaScript の encodeURIComponent で 1 文字ずつ変換した値です。変換される文字は、UTF-8 のバイトごとに % と 2 桁の 16 進数で表します。
区別は RFC 3986 によります。非予約の文字は変換しなくても URL に使えます。予約の文字は URL の区切りに使う記号で、encodeURIComponent は予約の文字のうち ! ' ( ) * を変換せずに残します。その他の文字は必ず変換されます。
フォーム送信 (application/x-www-form-urlencoded) ではスペースが + になり、+ そのものは %2B になります。encodeURI と encodeURIComponent はスペースを %20 にします。
任意の文字列を変換する
表に無い文字や文章全体は、URL エンコード / デコードツールでその場で変換できます。
URL エンコード / デコードツールを開く