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"とする方法はまともに使えないのであきらめた方がよい。