JavaScriptプログラムに関する各種メモ書き

JavaScriptでURIエンコード(URLエンコード)を行う

javaScriptでURIエンコードを行うには

  • encodeURI
  • encodeURIComponent
  • escape

の関数を使う事ができる。

この3つの違いはエンコードしない文字に違いがあって

■ encodeURI がエンコードしない文字列
;/?:@&=+$-_!~*.,()a#'
■ encodeURIComponent がエンコードしない文字列
-_!~*.()a'
■ escape がエンコードしない文字列
*+-_./

となっています。

なので(http://〜)を含むURLをエンコードするには、コロンやスラッシュを変換したい用途、したくない用途によって

encodeURIComponent , encodeURI を使い分けるのがいいでしょう。

通常encodeURIComponentを使うのがいいと思います。

また escape は 全角文字など文字コードが256以上の値を持つ文字は %uxxxx という形式に変換しますのでURLエンコード用途では使用しないほうがいいでしょう。

■ 使い方
e_uri = encodeURIComponent( 'http://xxx.yyy.zzz/aaa.cgi?bbb=ccc' );
■ 動作サンプルコード

こちらの動作サンプルコードをご使用ください。

■注意 1.

これらの関数はUTF-8でエンコードするのでそれ以外の文字コードを使ったページの場合は

使えません。

shift_jis , euc-jp でurlエンコードを行いたい場合は http://www.junoe.jp/downloads/itoh/enc_js.shtml こちらの関数を使うといいでしょう。

■注意 2.

URLデコードするときには decodeURIComponent , decodeURI を使用しますが、これらの関数はデコードできない文字が含まれるときエラーでスクリプト自体を終了させるので、必ず try catch しましょう。


添付ファイル1