2009年7月12日

[ruby-list:46205] set_encoding についての質問

初めて投稿します.Ruby 1.9.1 を使っていて,文字コードの扱いに慣れようと四苦八苦しています.


# -*- coding: Shift_JIS -*-
#
# これは Ruby のバグでしょうか? (Ruby 1.9.1p129 for MSwin32)
#
# $stdin.set_encoding("Shift_JIS") として標準入力の文字コードを変更すると,

# その直後の $stdin のストリームにはすでに \n が入っていて,$stdin からの
# 入力を待たずに,ただちに次の行に制御を移し,終了してしまいます.
#
p Encoding.default_external #=> #<Encoding:Windows-31J>
p Encoding.default_internal #=> nil
#
s = gets #<= "あいうえお"
p s.encoding #=> #<Encoding:Windows-31J>
p s #=> "あいうえお\n"
$stdin.set_encoding("Shift_JIS")
s = gets #<= "かきくけこ"
p s.encoding #=> #<Encoding:Shift_JIS> ?
p s #=> "かきくけこ\n" ?

どなたかご教示いただければ幸いです.よろしくお願いいたします.

----------
俊(とし)
* 望湖庵日記 http://griffin.cocolog-nifty.com/lakesidedairy/


投稿者 xml-rpc : 2009年7月12日 19:32
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/86616
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。