From: "NARUSE, Yui" Date: 2008-01-12T02:36:03+09:00 Subject: [ruby-dev:33049] Re: Binary String 成瀬です。 Hidetoshi NAGAI wrote: > 永井@知能.九工大です. > > From: "NARUSE, Yui" > Subject: [ruby-dev:33029] Re: Binary String > Date: Fri, 11 Jan 2008 19:28:26 +0900 > Message-ID: <478744D1.6000007@airemix.com> >>> 非対応 locale だったりした場合には default_external は ASCII-8BIT に >>> なってしまうのではなかったでしょうか? >> 現在は非対応 locale だらけですが、一般の使用に供せる頃にはほぼ問題なく >> なっているはずです。 > > では,それまでの間はどうすればいいのでしょう?(^_^; > また「ほぼ」以外の部分はどうなるのでしょうか? > そこで ASCII-8BIT が使われてしまうのでは困ります. Ruby 1.9.1 がキャンセルされて 1.9.0 になっている状況なんですから、未実装 なので動きませんの一言でしょう。Windows-31J の対応が入ったのすらクリスマ ス後ですし。 また、 [ruby-dev:33031] にあるように、default_external 側に dummy encoding を設定することで、文字列の方を ASCII-8BIT じゃなくするという方 法もあります。こちらならそのエンコーディングに対応しなくても使えますね。 つまるところ、バイナリを ASCII-8BIT から区別するのではなく、文字列の側を 区別するべきだと。こちら側のアプローチも現在十分な道具がそろっていないと 思いますが、それはこれから実装されるべきものです。 >> # 「呼び出されるメソッド側で判断しろ」でなく、 >> # 「呼び出すメソッド側が encoding をつけろ」ですね。 > > 別メールでの one liner のように, > locale に従ったデフォルトの encoding で使おうとしているのに > 毎度 encoding を明示しなければならないというのは酷です. > デフォルトを使わない場合にのみ encoding 指定が必要になるというのが > 好ましい姿ではないでしょうか. ruby -e'print "ほげ"' の "ほげ" には Encoding.default_external を指定し てよさそうな気がするのですが、副作用ってありますかね? -- NARUSE, Yui DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA