encodeURIComponent を使ってURLエンコードをしたいけど、エスケープされない文字もエンコードしたいときの方法です。 encodeURIComponentアルファベット、10進数字、- _ . ! ~ * ' ( ) はエスケープしないので下記の方法で対応。 メソッド 例: . (ドット)と、 - (ハイフン) も URL エンコードしたい場合、/[.-]/g を指定するとよいです。 function fixedEncodeURIComponent(str) { return encodeURIComponent(str).replace(/[.-]/g, function(c) { return '%' + c.charCodeAt(0).toString(16); }); }