🥌
URLパラメータ内の '+' がスペースに変換されてしまう時の対処法
問題
URLパラメータに含まれている + が、 + として認識されない。
user+test@gmail.com => user test@gmail.com
このように、意図せずスペースに変換されてしまう時の対処法。
結論
+ の代わりに、 %2B を代用する。
user%2Btest@gmail.com => user+test@gmail.com
無事変換される。
原因
URLパラメータ(クエリストリング)内の+ は、スペースがURLエンコードされたものだから。
URLエンコードとは
URLに使ってダメな文字をURLに使って良い文字の組み合わせだけで表現する変換[1]
これにより、URL内で特別な意味を持つシンボルなどをエスケープさせる事ができる。
URLエンコードの結果だと認識された + がデコードされて、スペースになっていた。
他のシンボルの対応表
Discussion