URLエンコードの落とし穴

以下の文字をcodeURI()でエンコードしたつもりがなぜか#だけエンコードされずに困った。

あいうえお#わを

解決方法
#で文字を分割して、それぞれエンコードした文字をエンコードした#(%23)で繋げる。めんどくせー。
#が付かない場合もあるので条件分岐も入れた。

var hoge = “あいうえお#わを”;

if(hoge.indexOf(“#”)>0){
var ahoge = hoge.split(“#”);
var encohoge = encodeURI(ahoge[0]) + “%23” + encodeURI(ahoge[1]);
} else {
var encohoge = encodeURI(hoge);
}

他に良い方法があったら教えて。

コーディングに関する記事

コメント