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だと、デコードの際に半角スペースが「+」になってしまいました。
というわけで、下記のように一旦+を半角スペースに置換してからデコードしています。
var replaced_word = url_encoded_word.replace(/\+/ig," "); var decode_word = UnescapeEUCJP(replaced_word);