Catalyst::Model::DBIC::Schemaで作るUTF-8とCP932対応モデル

| コメント(0)

DBはUTF8だけど、携帯サイトなどでShift_JISも使いたい。
DBICをShift_JISで上手く使うには

  1. Template::Plugin::Jcodeを使う。 TTビューはアクセサの最後に.jcode.sjisを付ける。フォームからの入力は、手動変換。
  2. Data::FormValidatorのfiltersでUnicode::Japaneseのcode refを指定して一括変換してしまうのがよいかも。
  3. Catalyst::Plugin::Unicode::Encodingで入出力の内外を自動変換。
  4. DBIx::Class::InflateColumnを使って自動変換。変換するカラムを指定する必要があるため、少し面倒。 (DBIx::Class::UTF8Columnsも同じ手間)

2が簡単そうだけど、UTF8とShift_JIS用にスキーマを二重に作るのも面倒だし、携帯のキャリア別の絵文字の関係で1で使い初めました。

コメントする