From: matz@... (Yukihiro Matsumoto) Date: 1999-05-08T03:15:30+09:00 Subject: [ruby-dev:6737] Re: Ruby 1.3.3-990507 まつもと ゆきひろです In message "[ruby-dev:6732] Re: Ruby 1.3.3-990507" on 99/05/08, Wakou Aoyama 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目が立っ ている文字をそのまま出力してますね.なぜこんなことをしたのか 全然覚えてないんですが.うーん,外して良いものだろうか? まつもと ゆきひろ /:|)