\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フラグとは直接関係ありません。

すいません、元記事も修正したんですが、今のところ experimental 扱いだそうです。
自分が引用した部分の直下に書いてありました orz
DBD::Pg の pg_enable_utf8 の方はそういう記述はなさそうですね。
> DBDのレイヤーで吸収するこの方法が個人的にもベストプラクティスだと思います。
僕もそう思います。なので早く experimental 外れると良いですね。
実装されてから二年以上経ってるのでまぁ今後はずされることもないだろうし、せいぜい名前が変わる程度だと思うので大丈夫だと思ってます…甘いかな(^^;