まつもと ゆきひろです

In message "[ruby-dev:6732] Re: Ruby 1.3.3-990507"
    on 99/05/08, Wakou Aoyama <wakou / fsinet.or.jp> writes:

|青山です。
|
|p (inspect) がまたおかしくなっています。
|
|$ /usr/src/ruby-1.3.3-990430/ruby -e 'p %w[255 253 24 255 253 32 255 253 35 255 253 39].filter{|c| c.to_i.chr }.join("")'
|"\377\375\030\377\375 \377\375#\377\375'"
|
|$ /usr/src/ruby-1.3.3-990507/ruby -e 'p %w[255 253 24 255 253 32 255 253 35 255 253 39].filter{|c| c.to_i.chr }.join("")'
|"\377\377\377\377"
|
|気が付くと、1.2.5 もだったんですね。

-Knを指定していない場合に,こーゆー正当なmbcでない文字列を
inspectして正しく表示されるのを期待されると困っちゃいます.
いや,Rubyはできる限り正しく出力してるが端末が表示できないっ
ていうか.

なんか良い方法はあるでしょうかね.「これは文字列ではない,バ
イト列だ」っていう判定ができれば良いんでしょうけど,汚いアド
ホックな方法しか思い付かないなあ.

なお,バイト列としての文字列を「正しく」表示するメソッドとし
ては String#dump があります.

|$ /usr/src/ruby-1.2.5/ruby-1.2 -e 'p %w[255 253 24 255 253 32 255 253 35 255 253 39].filter{|c| c.to_i.chr }.join("")'
|"\377\377\377\377"
|
|-Kn を指定した時の挙動も変です。1.2 系 1.3 系とも。

こっちは明確なバグです.なぜだか-Ke以外の場合で8bit目が立っ
ている文字をそのまま出力してますね.なぜこんなことをしたのか
全然覚えてないんですが.うーん,外して良いものだろうか?

                                まつもと ゆきひろ /:|)