From: Yusuke Endoh Date: 2010-04-20T22:09:10+09:00 Subject: [ruby-dev:41024] [Bug #3180] getc with text mode breaks incomplete character immediately before EOF Bug #3180: getc with text mode breaks incomplete character immediately before EOF http://redmine.ruby-lang.org/issues/show/3180 起票者: Yusuke Endoh ステータス: Open, 優先度: Normal 担当者: Yui NARUSE, カテゴリ: M17N, Target version: 1.9.2 ruby -v: ruby 1.9.2dev (2010-04-20 trunk 27405) [i686-linux] 遠藤です。 # coding: UTF-8 # "う" の途中で切れた中途半端なファイルを作る s = "あいうえお".force_encoding("ASCII-8BIT") open("foo.txt", "wb") {|f| f.write(s[0, 8]) } # IO#read で一気に読めば期待通り open("foo.txt", "rt") {|f| p f.read } #=> "あい\xE3\x81" # UTF-8 を明示すると UTF-8 になるが、最後の文字が化ける open("foo.txt", "rt:UTF-8") {|f| p f.chars.to_a } #=> ["あ", "い", "\u0000\u0000"] LANG は ja_JP.UTF-8 です。 incomplete な文字が "\0\0" に化けるのは意図的でしょうか。 期待としては、["あ", "い", "\xE3", "\x81"] です。 -- Yusuke Endoh ---------------------------------------- http://redmine.ruby-lang.org