Javascript URLエンコードを文字コード指定でデコードする

Javascript

Javascript URLエンコードを文字コード指定でデコードする

JavascriptでURLエンコードしたり、デコードするのは標準で

 
 //エンコード
 encodeURI("変換したい文字列"); 
 //デコード
 decodeURI("エンコードされた文字列"); 

という関数がありますが、文字コード指定でエンコード・デコードできません。
私はちなみにEUC-JPでエンコードされた文字列をデコードすると、Firefoxで

 malformed URI sequence

というエラーが出てJavascriptの実行自体、そこで止まってしまうということになってしまいました。

しかし、次のライブラリを利用すれば、Javascriptで文字コード指定でURLエンコード・デコードできます。

Escape Codec Library: ecl.js
http://travel.han-be.com/ecl/Escape%20Codec%20Library%20ecl_js.htm

使い方は、上記のページに詳しいので、そちらを読んでください。

ただ、一点残念なのが、私が利用したい環境のEUC-JPだと、デコードの際に半角スペースが「+」になってしまいました。[sad]
というわけで、下記のように一旦+を半角スペースに置換してからデコードしています。

 var replaced_word = url_encoded_word.replace(/\+/ig," ");
 var decode_word = UnescapeEUCJP(replaced_word); 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です