2011-08-11

[Javascript] Javascriptのエンコード、デコードは簡単ではない

PHP、Perl、Javascriptとエンコード/デコードのやり方や関数はいろいろ用意されていると思うのですが、
Shift_JISでエンコードされた文字を、JavascriptでデコードしてUTF-8のHTMLに表示しようとすると、
何をやってもうまくいきませんでした。

「Javascript デコード」で検索すると出てくるものとしては、
decodeURI、decodeURIComponent、unescapeなどが出てくるのですが、
どれを試してもやはりうまく表示されず。。

とりあえずはPHPのurldecodeとmb_convert_encodingを使うことで解決させたのですが、
Javascriptの件も気になったので、もうちょっと調べてみました。


どうもJavascriptの場合はそうお手軽にできるようではないらしく、
ecl.js(Escape Codec Library)というライブラリを使用するといいらしいことがわかりました。
ecl.jsをさらに改良したecl_new.jsというものを見つけましたので、
それを使ったデモを作ってみました。

Javascriptでデコードのデモはこちら

ecl.jsの改良版
http://www.drk7.jp/MT/archives/001324.html


上記のデモでは、文字コードがShift_JISのもので、
EscapeSJIS、UnescapeSJISという関数を使用していますが、
EUCやUTF-8などをはじめ、多様な文字コードに対応した関数が用意されています。

どうしてもJavascriptで対応する必要がある場合は、今後これを利用したいと思います。

Comment:

Trackback URL: