script/runnerを使う。スクリプトはlibディレクトリに置く。
UNIX環境ではUTF-8で標準出力に書き出せるが、Windowsの場合Shift-JISじゃないと文字化けする。Windows環境の場合、rubyスクリプト内部でUTF-8→Shift-JIS変換して出力するのが現実的。
require 'kconv'
class StdoutHook
def write(str)
STDOUT.write NKF.nkf("--ic=UTF-8 --oc=Windows-31J", str.to_s)
end
$> = new
end
ちなみにWindows用のコマンドプロンプトで"chcp 65001"とする方法はまともに使えないのであきらめた方がよい。