http://example.com/path?k1=v1&k2=v2 においてk1, v1, k2, v2の部分に使える文字について調べてみた。 まとめ *-._の4文字と英数字はそのまま スペースは+に置換する それ以外はパーセントエンコードする 根拠:HTML5のw3cの仕様がそう言っている。 JSのencodeURIComponentはこの4文字に加えて!'()~もエスケープから除外している。encodeURIComponentはRFC 2396準拠であり、古い。よってencodeURIComponentが常に正かというとそういうわけではない。 現実には、スペースを+でなく%20に置換してしまっても問題ない事が多い それどころか、*-._ の4文字もパーセントエンコーディングしてしまって問題ない事が多い 調査記録 RFCを追っていくと、パーセントエンコードしなくていいのは-._~の