JavaScript:フォームのエンコードを牛耳る
2007.01.21 Sunday
最近prototype.jsでプログラミングする機会が多いのですが(いつのまにか1.5.0になってるし…)、Form.serializeするときの処理でちょっとつまづいたのでメモっときます(主に自分用)。
便利なのでよくForm.serializeを使っているんですが、EUCで書かれたページでもなんでもマルチバイト文字をエンコードした際にはUTF-8になってしまいます(コレで3時間悩んだ)。
ソースを追っていくと「encodeURIComponent」という関数にあたりますが、JavaScriptのどこかのバージョンから実装されたもので、こいつが自動的にUTF-8に変換してエスケープしてるためにprototype.jsもこうなっているようです。
サーバ側で変換をかけるのもアリですが、面倒なんでJavaScript側で自作するかーと思い調べていたらエンコード関連をまとめたライブラリを発見しました。すごい!
これで枕を高くして眠れます(笑)。
参考文献)
prototype.js v1.5.0 の使い方
AjaxでShift_JISやEUC-JPは使えるのか?-1- responseText編
ソースを追っていくと「encodeURIComponent」という関数にあたりますが、JavaScriptのどこかのバージョンから実装されたもので、こいつが自動的にUTF-8に変換してエスケープしてるためにprototype.jsもこうなっているようです。
サーバ側で変換をかけるのもアリですが、面倒なんでJavaScript側で自作するかーと思い調べていたらエンコード関連をまとめたライブラリを発見しました。すごい!
これで枕を高くして眠れます(笑)。
参考文献)
prototype.js v1.5.0 の使い方
AjaxでShift_JISやEUC-JPは使えるのか?-1- responseText編