From: "NARUSE, Yui" <naruse@xxxxx>
Subject: [ruby-list:45330] Re: Windows コマンドプロンプトで UTF-8を出力するには
Date: Sat, 9 Aug 2008 21:06:10 +0900
るびきちです。
> >> いえ、出力が Shift_JIS 系であればいいだけで、
> >> ソースコードは UTF-8 でも大丈夫ですよ。
> >
> > あれ、1.8 で出力の文字エンコードを指定する事はできましったけ?
>
> できないので、puts をフックするとか、myputs を使うとか。
> def myputs(*arg)
> puts NKF.nkf("--ic=UTF-8 --oc=Windows-31J", arg.map{|x|x.to_s}.join("\n"))
> end
$>にwriteメソッドを持つオブジェクトを代入するとか。
require 'kconv'
class StdoutHook
def write(str)
STDOUT.write NKF.nkf("--ic=UTF-8 --oc=Windows-31J", str.to_s)
end
$> = new
end
あとはputsでもprintでもprintfでもShift_JISで出力されます。
--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/