Ruby1.9.2とRails3.0.3でincompatible character encodings: UTF-8 and ASCII-8BIT エラー

Tsukasa OISHI

Ruby1.9.2 + Rails3.0.3 で開発中にview内で incompatible character encodings: UTF-8 and ASCII-8BIT という例外が発生しました。
しらべてみると、String#concatで例外が出ているようです。concatの引数で渡したStringがASCIIと判断されてしまっていて、違う文字コード同士を連結しようとするために発生する例外でした。

とりあえず乱暴ですが以下のようにして対応しました。
config/initializers/string.rb

class String
  def concat_with_ruby192(str)
    concat_without_ruby192(str.force_encoding('utf-8'))
  end
  alias_method_chain :concat, :ruby192
end