[#45988] 質問:IO#set_encoding 後の IO#gets について — Dice <rubyist@...>
Diceです。
4 messages
2009/05/02
[#46005] [ANN] locale-2.0.3, locale_rails-2.0.3, gettext-2.0.3, gettext_activerecord-2.0.3, gettext_rails-2.0.3 — Masao Mutoh <mutomasa@...>
むとうです。
3 messages
2009/05/09
[#46014] 複数バージョンのRubyに対応するRSS::Makerの使い方 — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
4 messages
2009/05/13
[#46033] cgi をするときのデバック方法について — Nobuyuki Inaba <nobuyuki.inaba@...>
稲葉と申します。
15 messages
2009/05/22
[#46034] Re: cgi をするときのデバック方法について
— rubikitch@...
2009/05/23
From: Nobuyuki Inaba <nobuyuki.inaba@gmail.com>
[#46040] RoR on Linux で MS-SQL にアクセスしたい
— しん <dezawa@...>
2009/05/28
出沢@神奈川です
[ruby-list:45988] 質問:IO#set_encoding 後の IO#gets について
From:
Dice <rubyist@...>
Date:
2009-05-02 12:22:26 UTC
List:
ruby-list #45988
Diceです。
ruby 1.9.1 での IO について、よく分からない動作を見つけたのですが
私の勘違いなのか ruby 本体のバグなのか、今ひとつ判断がつきかねるので
こちらで質問させてください。
環境は ruby 1.9.1 (2009-01-30 revision 21907) [i386-mswin32] です。
次のようなスクリプトをファイルに保存して……
--------
open('test.txt', 'w'){|f|
f.write(<<TEXT)
line 1
line 2
TEXT
}
open('test.txt', 'r:us-ascii'){|input|
puts "<ascii mode>"
p input.gets
p input.gets
p input.gets
input.rewind
p input.gets
input.set_encoding('us-ascii')
p input.gets
p input.gets
input.rewind
}
open('test.txt', 'rb:us-ascii'){|input|
puts "<binary mode>"
p input.gets
p input.gets
p input.gets
input.rewind
p input.gets
input.set_encoding('us-ascii')
p input.gets
p input.gets
input.rewind
}
--------
このスクリプトを ruby で実行すると、次のように出力されます。
--------
<ascii mode>
"line 1\n"
"line 2\n"
nil
"line 1\n"
"\n"
"line 2\n"
<binary mode>
"line 1\r\n"
"line 2\r\n"
nil
"line 1\r\n"
"line 2\r\n"
nil
--------
ここで ascii mode の出力5行目は、なぜ "line 2\n" ではなく "\n" なのでしょうか?
--------------------------------
Dice
tetradice+ruby@gmail.com