(個人的に)長年もにょっていた掲題の件について、まとまったのでメモ。 Query 文字列とは? URL の ? 以降の部分。よく GET パラメータと言っているやつですね。 という URL があったとしたら、 ? 以降の foo=bar の部分です。 Query 文字列内でのスペースの扱い 「%20」でもいいし、「+」でもいける。 可能だったら後者が望ましい(という結論に至った)。 URL で利用可能な文字 URI の RFC で規定されてます。スペースは利用できないので %20 に URL エンコードする必要があります。なので Query 文字列内のスペースももちろん %20 とエスケープする必要あります。 あれ? 「+」の話は? URI の RFC では Query 文字列で「+」をスペースとして扱うというくだりは見当たりません。 これは URI のサブセットである URL で規定され
![URL の Query 文字列でスペースを「%20」とするか「+」とするか論争 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/90a7347190cda5626d9d1bba4391f06d58ef72dd/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9VVJMJTIwJUUzJTgxJUFFJTIwUXVlcnklMjAlRTYlOTYlODclRTUlQUQlOTclRTUlODglOTclRTMlODElQTclRTMlODIlQjklRTMlODMlOUElRTMlODMlQkMlRTMlODIlQjklRTMlODIlOTIlRTMlODAlOEMlMjUyMCVFMyU4MCU4RCVFMyU4MSVBOCVFMyU4MSU5OSVFMyU4MiU4QiVFMyU4MSU4QiVFMyU4MCU4QyUyQiVFMyU4MCU4RCVFMyU4MSVBOCVFMyU4MSU5OSVFMyU4MiU4QiVFMyU4MSU4QiVFOCVBQiU5NiVFNCVCQSU4OSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9M2NjNzUxMjQwNzkzZjNhYWVlYmZkN2UwMTNiZWY5Yzg%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwa296eTQzMjQmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWQwMTUyM2VjOWNjZGZiNDFkNTA4YWE0Y2IzM2MyYjU3%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D1059a9b162092548a4f71127c32293c2)