\mysql_enable_utf8 => 1 で DBIC::UTF8Columns 要らなくなるっぽい - 僕ト云フ事@はてな出張版

恥ずかしながら知りませんでした。
DBIx::Classの場合、DBIx::Class::UTF8Columnsを使ってutf8_columns()でUTF8フラグを立てたいカラムを指定するのですが、特定のカラムだけにUTF8フラグを立てるというのは稀で、全ての文字列のカラムに立てるのが多くの場合だと思います。
ので、DBDのレイヤーで吸収するこの方法が個人的にもベストプラクティスだと思います。
vkgtaro++

備忘でまとめておくと各DBDの接続オプションで

  • mysql: mysql_enable_utf8
  • postgresql: pg_enable_utf8
  • sqlite: unicode

に1を指定することにより、全ての文字列のカラムの値にUTF8フラグが立って返ってきます。

ちなみにmysqlのSET NAMES 'utf8'とかはサーバーに対するクライアントが使用する「文字コード」の宣言であってUTF8フラグとは直接関係ありません。

参考: Using Unicode - Catalyst::Wiki

              

              

トラックバック(1)

トラックバックURL: http://mt.hide-k.net/mt-tb.cgi/775

追記 (2009/02/09): Using Unicode in Catalyst Applicationsを参考に一部改変しました。 以前、Cata... 続きを読む

コメント(2)

すいません、元記事も修正したんですが、今のところ experimental 扱いだそうです。
自分が引用した部分の直下に書いてありました orz

DBD::Pg の pg_enable_utf8 の方はそういう記述はなさそうですね。

> DBDのレイヤーで吸収するこの方法が個人的にもベストプラクティスだと思います。
僕もそう思います。なので早く experimental 外れると良いですね。

実装されてから二年以上経ってるのでまぁ今後はずされることもないだろうし、せいぜい名前が変わる程度だと思うので大丈夫だと思ってます…甘いかな(^^;

コメントする

プロフィール

このブログ記事について

このページは、hideが2009年2月 4日 06:14に書いたブログ記事です。

ひとつ前のブログ記事は「Inspiron Mini 12のファーストインプレッション」です。

次のブログ記事は「Amazon.co.ukでCD買ってみた」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。