Rails script/runnerの文字化け

Railsで文字化けを解消するために以下のコードをapp/contorllers/application.rb に設置した。
すると今までうまく表示されているものが文字化けを起こし、以下のコードを設置したものはphpmyadminなどできちんと表示されている。

  before_filter :set_charset
  before_filter :configure_charsets


  private
  def set_charset
      headers["Content-Type"] = "text/html; charset=UTF-8"
  end

  def configure_charsets
      response.headers["Content-Type"] = "text/html; charset=utf-8"
      # Set connection charset. MySQL 4.0 doesn't support this so it
      # will throw an error, MySQL 4.1 needs this
      suppress(ActiveRecord::StatementInvalid) do
          ActiveRecord::Base.connection.execute 'SET NAMES UTF8'
      end
  end


しかし、script/runnerでバッチ実行するコードは文字化けを起こすようになったので、script/runnerはやめて、ActionRecordを自力で呼び出して実行していた。

しかし、上の応用だがscript/runnerでも文字化けしない方法は最初に以下のコードを実行させればいいだけだった。

      suppress(ActiveRecord::StatementInvalid) do
          ActiveRecord::Base.connection.execute 'SET NAMES UTF8'
      end

なんでMySQL 4.1, 5.0はこんなことをしないといけないの?