From: Hiroshi Ichikawa Date: 2008-01-19T15:07:34+09:00 Subject: [ruby-dev:33182] Re: Binary String Gimiteです。 > > なるほど。僕は一応このTkのケースでも区別できたほうがいいと考えています。というのは、区別できない場合は > > ・バイナリデータ→変換しない→正常に処理される > > ・エンコーディング不明な文字列→変換しない→文字化ける > > という対処しかできないのに比べて、区別できた場合は、 > > ・バイナリデータ→変換しない→正常に処理できる > > ・エンコーディング不明な文字列→例外を投げる > > という対処もできるようになります(エラーの表現としては文字化けよりも例外のほうが明示的で分かりやすいだろう、ということで)。 > > > > まあ文字化けだって見れば分かるんだから、例外投げるのとそんなに変わらないのでは、と言われれば、そんな気もしますが…。 > > それって、一見 strict でいい感じに見えますけれど、実装は ASCII-8BIT が来 > たらエラー、になりますよね。エラーだらけでまともに動かない気がするのです > が。気をつけてテキストデータには encoding を、バイナリデータには binary > を一つ一つつけていくというのもいいとは思うのですが、なんか違うような。 「基本方針として、ASCII でない文字列を ASCII-8BIT で扱うのは例外的な状況になるべき」(田中さん)という方針が守れれば、エラーだらけにはならないと思うのですが…。 (逆に、エラーになるような箇所では適切なencodingを手動で指定するべき) 現状のRubyの実装はまだこの方針を徹底できてないから、今それをやるとエラーだらけになるよ、ということでしたら、それはそうかもしれません…。