Ruby 1.9 系ではファイルのオープン時にエンコーディングを指定しないとうまく書き込めない

表題の通りに、マジックコメントで

# coding: utf-8

のように指定した rubyスクリプトを使っている場合

open("hoge.txt", "w") do |file|
  file.puts NKF.nkf("-s", "ほげほげ")
end

のように NKF で変換をかけて書き込もうとしても、マジックコメントで指定されたエンコーディングのままで書き込まれてしまうようです。
対処法としては、ファイルのオープン時にエンコーディングを指定します。

open("hoge.txt", "w:Shift_JIS") do |file|
  file.puts NKF.nkf("-s", "ほげほげ")
end