PSLブログ

ヨシナシゴトヲツヅリマス

encodeURIComponent()

javascriptでinput欄のメールアドレスをクエリーに付加してlocation.hrefでCGIにアクセスする処理を書いていたのだが、初めはescape()でURIエスケープしたつもりになっていたら、gmail.comのエイリアス(username+ext@gmail.com)のような"+"を含むアドレスの場合だと、+がそのままURLとして渡り、CGIのデコードで半角スペースに置き換わってしまい困った。

そこで調べたところ、よいページを見つけた。つまり、escape()をencodeURIComponent() に置き換えるだけでよかった。

javascript: escape(), encodeURI(), encodeURIComponent() 比較