日々のアンテナ

日々アンテナを貼って、いろんな情報をキャッチ、発信したいと思います。
2017年10月 ≪  123456789101112131415161718192021222324252627282930 ≫ 2017年12月
TOPお仕事のこと ≫ [javascript]シャープ記号(#)をエンコードする

[javascript]シャープ記号(#)をエンコードする

またまた仕事でプチはまったこと。
urlパラメタにシャープ(#)を含む文字列を渡した場合、#以下は無視されてしまう。
エンコードすればいいじゃんと思ってencodeURIをつかったけどこれだと#はエンコードされない。
どーしよー、と思ったら、encodeURIComponentという関数もあるらしい。
違いはエンコードする文字列の種類なんだそうで、encodeURIComponentには#が入ってる。

■ encodeURI()がエンコードしない文字列

;/?:@&=+$-_!~*.,()a#'

■ encodeURIComponent()がエンコードしない文字列

* _!~*.()a'


こちらのサイトを参考にさせていただきました♪
http://logic.moo.jp/memo.php/archive/438

ていうかなんで二種類必要なのかわかんない。
encordURIを使っていてひそかにバグを抱えている案件がありそうだ。

今回も数十万ある中でたまたま#を含む場合だけ動きが変だったので気づいたけど、それをテストしてなければ気づかなかったです。

Comment













非公開コメントにする
Trackback

Trackback URL