- 11 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 21:53:47 ]
- 今1.9.1覚えようとしてるのですが、文字コードについて分かる方教えてください
参考にしてるテキストは「初めてのRuby」で、 5.5.1で外部エンコーディングについて、 読み書きしようとする外部リソースのエンコーディングであって、 リソースに文字列データを書き込む際には外部エンコーディングに変換されます。 と説明があります。 しかし、実際に異なるエンコーディングで試してみると以下の(2)のように文字化けします。 これは書き方が悪いのでしょうか、それとも仕様でしょうか #encoding: Shift_JIS require 'stringio' p Encoding.default_internal #=> nil p Encoding.default_external #=> #<Encoding:Windows-31J> s = gets() # "日本語"を入力 p '1:'+s #=> 1:日本語 p s.encoding #=> #<Encoding:Windows-31J> e = s.encode('euc-jp') p '2:'+e #=> 2:(文字化け) p e.encoding #=> #<Encoding:EUC-JP> buffer = "".encode('Shift_JIS') sio = StringIO.new(buffer) $stdout = sio puts '3:'+s #=> 3:日本語 puts '4:'+e #=> 4:日本語 (StringIOを経由するとエンコード変換される) $stdout = STDOUT puts buffer OS: Vista version: ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-mswin32]
|

|