Railsでページごとに出力の文字コードを変える

Railsはデフォルトで UTF-8 だけれども、たまに何ページか Shift_JIS で出したいみたいなことがあって、そういうのは after_filter で定義しておけばよい。

 Controller に以下のように書いておけばよい。上位のとこで書いといて、必要なとこで呼ぶ感じに。

  after_filter :change_charset_to_sjis, :only => [:sjis_page]
  protected
  def change_charset_to_sjis
    response.body = NKF::nkf('-Ws', response.body)
    headers["Content-Type"] = "text/html; charset=Shift_JIS"
  end
Railsでページごとに出力の文字コードを変える