From: "NARUSE, Yui" Date: 2008-01-11T18:26:56+09:00 Subject: [ruby-dev:33020] Re: Binary String 成瀬です。 Hidetoshi NAGAI wrote: > 永井@知能.九工大です. > > From: Nobuyoshi Nakada > Subject: [ruby-dev:32561] Re: Binary String > Date: Thu, 13 Dec 2007 03:43:41 +0900 > Message-ID: <20071212184334.22A34E0575@mail.bc9.jp> >>> # そうであるなら,やはり安全確実な binary data のための encoding が >>> # 欲しいと感じます. >> 必要そうですね。 > > これに期待しているのですが,導入はダメなのでしょうか? > > 現状,force_encoding('binary') などは受け付けてはくれますが, > encoding は結局 ASCII-8BIT となってしまうので区別ができず役に立ちません. > ですので, > > * ASCII-8BIT の replica である. > > * BINARY からの encode メソッドでの encoding 変換は認めない (例外発生). > > * force_encoding は可能 (encoding 情報を付け変えるのみ). > > * BINARY への変換は任意の encoding から可能 > (force_encoding と同様(?)に encoding 情報を付け変えるのみ). > > という仕様のものではダメでしょうか? > > どうしても導入を認めてもらえない場合, > もし拡張ライブラリで独自の encoding を定義することができるなら, > tcltklib で TK_IDENTITY などというような encoding を作成して > それを使うというようなことも考えています. > Encoding 系の API がどうなっているのか全く知らないので, > 何をどうやってどのくらいの作業が必要なのかを > 全然分かってはいないのですが...(^_^; > > 可能だとしても,ライブラリで独自に追加するのはできる限り避けたいので, > なんとか導入していただけますようお願いします. 拡張ライブラリで独自エンコーディングの定義は可能ですが、多くの場合そうし た必要はないと思います。 この話は [ruby-dev:32550] の話だと思うのですが、現在は 「Encoding.default_external の encoding であると仮定して utf-8 への自動変換をかける」べき文字列には最初から default_external の encoding がセットされているはずです。つまり、その時点でまだ ASCII-8BIT になっているならば、それはバイナリデータだと判断すべきでしょう。 -- NARUSE, Yui DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA