Ruby1.9.2からは文字列がエンコード情報を持つようになったようなのですが、Railsでよく使用されるMySQLドライバーが未対応のためか、ActiveRecordで取得したデータの文字列はすべてASCII8として扱われてしまうようです。

こいつのせいでViewの方でエラーが多発してしまい、さて困った、、、。 調べてみると gem mysql2 がこのエンコード問題にも対応しているらしい。

早速インストールしてみる。

https://github.com/brianmario/mysql2

上記サイトのActiveRecordの項目を読んでみると、Rails3.1未満の場合はバージョン0.2系を使え、とのことなので、environment.rb に

config.gem "mysql2", :version => "0.2.11"
として、
rake gems:install
database.ymlの方も
development:
  adapter: mysql2
  database: hoge
  encoding: utf8
とすると無事にマルチバイト文字も扱えるようになりました。 にしてもRuby1.8系のソースを1.9に合わせるためには、大量のファイルの先頭にエンコードを示すマジックコメントを追記しなけれならない。他に方法ないのかな。