成瀬です。

> In message "Re: [ruby-dev:33094] Re: Encoding.compatible? and dummy
encodings"
>     on Mon, 14 Jan 2008 22:04:15 +0900, Martin Duerst
<duerst / it.aoyama.ac.jp> writes:
>
> |そもそも ISO-2022-JP も UTF-7 も内部処理のために作られてないし、
> |内部処理に向いてない。例えば ISO-2002-JP の場合に、文字列を簡単に
> |結合するには決まりが必要ですが、そういう決まりはありません
> |(作りたいと思えば作れると思いますが)。でもその決まりを守るために
> |文字列の一部取り出しのところで大変苦労しないと行けないです。
> |UTF-7 も同じです。
> |
> |正しい方向性として、そういう Encoding の場合、処理を極限不可能にするのは
> |妥当だと思います。極限に、入力と出力以外には使えなくて、他に何か
> |処理したい場合には (自信がある人は) binary や ASCII などで処理するか、
> |変換するかにする方がベストと思います。

あー、なるほど、確かに。

Yukihiro Matsumoto wrote:
> うーん、おっしゃる通りです。とすると「dummyはcompatibleでな
> い」の方が正解なのでしょうね。この場合、自分自身とは
> compatibleなのでしょうか。

自分自身とは compatible にしないと、ファイルからバッファに逐次読み込む、
なんてときにずっこけますね。

buf = ''
open('hoge.txt', 'r:iso-2022-jp') do |f|
  until f.eof?
    buf += f.redpartial(4096)
  end
end

-- 
NARUSE, Yui  <naruse / airemix.com>
DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA