高橋征義です。

matz / ruby-lang.org (Yukihiro Matsumoto)さん:
> |[ruby-dev:13699]で書いた通り、M17N Rubyではマルチバイト文字列
> |の扱いで過去との非互換性が発生することがあるわけですよね。
> |このような非互換性については何か指針があるんでしょうか。
> |
> |もし、「特に指定しなければ極力互換にする」ということにするなら、
> 
> そのつもりです。

了解です。

> | * 特に指定がなければ binary(byte sequence(== ascii(?)))として扱う
> | * binaryの場合は、今の非M17N Rubyとできるだけ同じように振舞う
> |
> |という感じになるんじゃないかと思うのですが、
> 
> asciiとbinaryは別物で、特に指定がなければ ascii で binary に
> は ctype とかないって選択肢もありえるわけですよね。

むむ、そうですね。
そうか、asciiはUS-ASCII(7bit)の範囲しか保証しないencodingでは
なく、基本はシングルバイト文字列だけど、ctypeとかは
US-ASCIIの範囲のみ理解する、ということになるわけですね。

> ところで、binmode や open(path, "rb") ではIOのエンコーディン
> グをbinary にするようにしました。

おお。そうなるわけですね。納得。

高橋征義 (TAKAHASHI Masayoshi)   E-mail: maki / open-news.com