memoこの広告は、90日以上更新していないブログに表示しています。2011-08-01nodeでガラケー対応したメモNode.jsWebサービス的なものをnodeでつくってて、ガラケー対応しないといけないことはわかってたんだけど、しばらくガラケー対応とかやってなかったので、すっかり文字コードのことを忘れてて痛い目みた。ガラケーだけPHPかPerlで書こうと思ったけど、そんなに大きいアプリじゃないのでできればPCとガラケーのロジック同じにしたかったので頑張ってみた。入力は全部SJISからUTF-8に変換して、出力はUTF-8からSJISに変換する。内部では全てUTF-8としてデータを扱う。一部のSoftBank端末がSJISで問題あるからUTF-8がいいとかはこの際気にしない。端末を判定するところ。next();});まあ判定ロジックは手抜きにしたので簡単。次に出力をSJISにする。これはrenderするところでiconv使ってutf8をshift_jisに変換する。data);}(iconvのインスタンスつくるのはコールバックの中のほうがいいかもとのこと。コメント欄参照)こんな感じ。expressの第三引数にコールバックを指定するとrender結果を受け取れるということがわかったので、割とキレイに実装できた。POSTで受け取ったリクエストbodyをパースするところで、connectのbodyParserはdecodeURIComponentを使っていて、これがSJISに対応してないのでSJISでPOSTするとエラる。これはブラウザのJavaScriptで同じ問題らしく、SJISのパーセントエンコーディングをデコードしてくれるやつがあった。decodeURIComponent;とかして、エンコーディングを渡してshift_jisだったらelc.jsのやつを使ってデコードするとかした。これで何とか対応できたけどまあとりあえず今後はガラケー対応はnodeじゃやらない。6はてなブログをはじめよう!hokacchaさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。