From: "遊楽庵" Date: 2008-01-11T20:09:10+09:00 Subject: [ruby-dev:33033] Re: Binary String 遊楽庵と申します。 横から口を挟んで申し訳ないのですが、 永井さん的には、名前として「binary」という名前のエンコーディングが 使えればそれでおっけーという風に理解したのですが。 [ruby-dev:33018] の > 現状,force_encoding('binary') などは受け付けてはくれますが, > encoding は結局 ASCII-8BIT となってしまうので区別ができず役に立ちません. > ですので, という発言から考えて、force_encoding('binary')したStringのencodingを後か ら見に行った時に「binary」という名前が取れるようになればいいんだろうと。 それさえできれば、あとはRuby/Tkがよきにはからうからと理解しました。 まずい話じゃない気がするのですけど、どんなもんでしょうか。 1.9のEncoding周りを理解してないで発言してるので 外してたらすみません。 NARUSE, Yui さんは書きました: > 成瀬です。 > > Hidetoshi NAGAI wrote: >> 永井@知能.九工大です. >> >> From: "NARUSE, Yui" >> Subject: [ruby-dev:33020] Re: Binary String >> Date: Fri, 11 Jan 2008 18:26:56 +0900 >> Message-ID: <47873667.9090704@airemix.com> >>> この話は [ruby-dev:32550] の話だと思うのですが、現在は >>> 「Encoding.default_external の encoding であると仮定して >>> utf-8 への自動変換をかける」べき文字列には最初から default_external の >>> encoding がセットされているはずです。つまり、その時点でまだ ASCII-8BIT >>> になっているならば、それはバイナリデータだと判断すべきでしょう。 >> 非対応 locale だったりした場合には default_external は ASCII-8BIT に >> なってしまうのではなかったでしょうか? > > 現在は非対応 locale だらけですが、一般の使用に供せる頃にはほぼ問題なく > なっているはずです。 > >> 先のメールでは「default_external で」とは書きましたが, >> Ruby 側が不明確な場合には,Tcl/Tk 側の encoding_system を >> 使うようにしています. >> >> # まだ Ruby 側と Tcl/Tk 側の encoding 名の対応はできていませんが. >> >> そうしたケースで Ruby 上ですべて ASCII-8BIT にされてしまうと >> どうしようもありません. > > 上を前提にすると、テキストであるのにもかかわらず ASCII-8BIT を指定された > 文字が Tcl/Tk に渡ってしまうことそれ自体が問題かとおもいます。Ruby 1.9 > では string を推測で文字コード自動変換という考え自体が間違っていますし、 > そのような状況は上流で防ぐべきでしょう。 > > 結局田中さんの [ruby-dev:33027] と趣旨は同じなのですが、"BINARY" が > ASCII-8BIT の alias であることからも、テキストを ASCII-8BIT のまま渡すの > が間違いです。 > > # 「呼び出されるメソッド側で判断しろ」でなく、 > # 「呼び出すメソッド側が encoding をつけろ」ですね。 > -------------------------------------- Easy + Joy + Powerful = Yahoo! Bookmarks x Toolbar http://pr.mail.yahoo.co.jp/toolbar/