🥌
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