忍者ブログ
ブログツール、2007/11/06作成
[35] [34] [33] [32] [31] [30] [29] [28] [27] [26] [25
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

いや~はまりまくりました。

jpmobileです。
先に言っておきます。
jpmobileは何も悪くありません。
すごくいいプラグインです!!
悪いのは私です!!!!

で、何がはまったって、エンコードです。

jpmobileにはすばらしいフィルタ処理のmobile_filterが存在します。

出力時はシステムのエンコードから携帯の対応エンコードに変換、
入力時には携帯のエンコードからシステムのエンコードに変換してくれるすばらしいフィルタです。

既存のシステムを携帯対応するというのがミッションです。
で、ApplicationContorllerで携帯かどうかの判別を行い、
携帯だったら専用のコントローラに移動するという方式で進めていきました。
携帯用のコントローラにスーパークラスを設定して、そこでmobile_filterを定義、
携帯でアクセスすれば自動でエンコード変換してくれるよね~
と試してみると、これがダメ。

むむ、と思い、after_filterで強制的に出力をshift-jisにしてみると成功。

で、そのまま開発を進めます。

問題が発生したのはフォームで日本語を送ったときです。
なんかエンコードが変です。

いろいろ変換して見るもダメ。

何がどうなってるんだ~と3時間。

オチは、after_filterで強制的にshift-jisにしていたところ。

jpmobileのmobile_filterはきちんと働いていたのに、
ApplicationControllerのbefore_filterで強制的にUTF8に変換していたのが原因で、
きちんと表示されていなかった。

とほほ。

ApplicationContorllerのエンコード指定のところに、
携帯アクセスかどうかの分岐を入れて、携帯以外はUTF-8にすることで解決。

とほほ。

とほほほほほほ。

教訓
まず、自分が過去に書いたコードを疑え
PR
この記事にコメントする
name
title
color
mail
URL
comment
pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
secret (チェックを入れると管理人だけに表示できます)
この記事へのトラックバック
この記事にトラックバックする:
ついめ~じ
ブログ内検索
フリーエリア
サニーカメラ
Powered by Ninja Blog    template by Temp* factory    icon by MiniaureType

忍者ブログ [PR]