こんばんは sheepman です。

IO#gets に limit を付けて呼ぶと valid_encoding じゃない
文字列が返ってきます。

$ cat test.txt
いろは

$ cat t.rb
#-*- coding: euc-jp -*-
io = open('test.txt', 'r:euc-jp')
p s = io.gets(3)
p s.valid_encoding?

$ ruby-1.9  t.rb
"い\xA4"
false

-- 
sheepman / TAMURA Takashi
sheepman / sheepman.sakura.ne.jp