スペースをプラス (+) または %20 にエンコードする必要があるのはいつですか? [重複] 質問する

スペースをプラス (+) または %20 にエンコードする必要があるのはいつですか? [重複] 質問する

スペースは、+記号に URL エンコードされる場合もあれば、 にエンコードされる場合もあります%20。その違いは何ですか。また、なぜこのようなことが起こるのでしょうか。

ベストアンサー1

+は、URL のクエリ部分など、コンテンツ内のスペースのみを意味します。application/x-www-form-urlencoded

http://www.example.com/path/foo+bar/path?query+name=query+value

この URL では、パラメータ名にquery nameスペースが含まれ、値query valueにもスペースが含まれますが、パス内のフォルダ名は ではfoo+barなくです foo bar

%20は、どちらのコンテキストでもスペースをエンコードする有効な方法です。したがって、URLの一部に含めるために文字列をURLエンコードする必要がある場合は、スペースを に%20、プラス記号を に置き換えるのが常に安全です%2B。これは、たとえばencodeURIComponent()JavaScriptで が行うことです。残念ながら、urlコードPHPでは(urlencode のより安全です。

参照

HTML 4.01 仕様 application/x-www-form-urlencoded

おすすめ記事