Rubyについて Part 35at TECH
Rubyについて Part 35 - 暇つぶし2ch11:デフォルトの名無しさん
09/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]


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch