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

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

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

  • encodeURI
  • encodeURIComponent
  • escape

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

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

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

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

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

-_!~*.()a'

■ escape がエンコードしない文字列

*+-_./

となっています。

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

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

通常<b>encodeURIComponent</b>を使うのがいいと思います。

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

■ 使い方

e_uri = encodeURIComponent( 'http&#58;//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デコードするときには <b>decodeURIComponent , decodeURI </b>を使用しますが、これらの関数はデコードできない文字が含まれるときエラーでスクリプト自体を終了させるので、必ず try catch しましょう。

添付ファイル1