Rubyでファイルに出力する時のエンコーディング

恥ずかしながら、Rubyで以下のようにファイルに出力する時に、文字化けするって悩んでしまった。

  open('xxx.csv', 'w') do |f|
    datas.each do |data|
      f.puts NKF.nkf('-W -s', data)
    end 
  end

Javaなどと同様に、ファイルの出力エンコードを指定してやらないと行けないのにね。

  open('xxx.csv', 'w:cp932') do |f|
    datas.each do |data|
      f.puts data
    end 
  end

参照:Rubyのエンコーディング - @tmtms のメモ

それと、これもいまさらなんだけど、「ソースコードを整形して表示するはてな記法」も今知った。

参照:ソースコードを色付けして記述する(シンタックス・ハイライト) - はてなダイアリーのヘルプ