From: Hidetoshi NAGAI Date: 2007-12-12T16:05:43+09:00 Subject: [ruby-dev:32552] Re: Binary String 永井@知能.九工大です. From: Yukihiro Matsumoto Subject: [ruby-dev:32551] Re: Binary String Date: Wed, 12 Dec 2007 15:38:50 +0900 Message-ID: > default_externalが設定されていれば、そのエンコーディングであ > ると分かっている文字列にはdefault_externalエンコーディングが > すでに付与されているはずですから、ある文字列がASCII-8BITであ > るということは、その文字列のエンコーディングは明示的に指定さ > れていない(わからない)ということを意味するのだと思います。 > > ので、これはidentityと同様に扱えばよい(っていうか、暗黙の変換 > をしてはいけない)と思うのですがどうでしょう? 「そのエンコーディングであると分かっている」というのが曲者です. irb で実行したためなのかもしれませんが, Encoding.default_external が EUC-JP の状態で, '漢字'.encoding とすると ASCII-8BIT が返ってきます. これを無変換で Tk に送り込むと当然文字化けすることになります. 「 Encoding を明示していないんだから仕方ない」という考えもあるとは 思いますが,明示していないなら default_external を想定するというのも さほど誤った対応であるとは思えません. それとも,上記条件で '漢字'.encoding が ASCII-8BIT を返すこと自体が バグということでしょうか? -- 永井 秀利 (九工大 知能情報) nagai@ai.kyutech.ac.jp