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

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

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

  after_filter :change_charset_to_sjis, :only => [:sjis_page]

  def change_charset_to_sjis
    response.body = NKF::nkf('-Ws', response.body)
    headers['Content-Type'] = 'text/html; charset=CP932'
  end

コメントを残す

メールアドレスが公開されることはありません。