質問
URLに検索パラメータを付与する際に、
https://example.com/search?q=cat%20dog
https://example.com/search?q=cat+dog
という2パターンがあるようでして(他にもある?)、このユースケースを知りたいです。
参考までにTwitterは「%20」でした。
https://twitter.com/search?q=cat%20dog
そしてYahoo! は「+」でした。
https://search.yahoo.co.jp/search?p=cat+dog
どういうときに「%20」を使い、「+」を使うのでしょうか?
尚、今回特に知りたいのは、
➀JavaScriptでpushStateする際にはどちらがいいのか?
②ajaxでPHPへ送る際にはどちらがいいのか?
という点ですが、
もし汎用的にユースケースを整理されている方がいらっしゃればぜひお聞かせください。
宜しくお願い致します。
補足
こんな情報がありました。
クエリストリングには「+」か「%20」、それ以外は「%20」
https://www.suzukikenichi.com/blog/which-shold-you-use-space-20-or-plus-in-urls-containing-space/
ですが、ならばTwitterがなぜ「%20」なのか疑問が残りますので、やや納得感が低いです。
補足2
またはこんなご意見もあります。
ていうかもともとの形にそって、半角スペースは%20に置換してもいいと思う。
https://uragou.hatenablog.com/entry/2018/03/16/144355
私も今回、この 「+」だとデコードができない という問題に躓き質問しました。
(pushStateの件でいえば、pushStateした後にそこからパラメータ(q)の値を取得すると、「+」はデコードできないために正規表現で置換しなければならない)
なので、こちらのご意見に頷くところがございます。
補足3
こちらも「%20」派でした。
x-www-form-urlencodedの仕様的には+の方が正しいのかもしれないが、現実的には%20にした方が安全と思う。
https://qiita.com/aosho235/items/0581fc82f8ce2c5ac055

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/04/19 09:35