From: Hidetoshi NAGAI Date: 2007-12-14T12:18:59+09:00 Subject: [ruby-dev:32589] Re: Binary String 永井@知能.九工大です. From: Yukihiro Matsumoto Subject: [ruby-dev:32586] Re: Binary String Date: Fri, 14 Dec 2007 01:07:24 +0900 Message-ID: > まず、いままでRubyにはbinaryというものはなくてそれなりに動い > てきたわけです。ということは、実はbinaryは不要ではないかとい > うのが私の考えです。 [ruby-dev:31999] で書かせていただいた通り, Ruby/Tk では binary であることをマークしておくことが必要でした. 1.8 までは String が encoding の情報を持っていなかったために Ruby/Tk 独自に encoding 情報を持たせてましたが, その際に binary であることの明示できていなければ 処理がきちんと行えない or 実装およびユーザの手間が増大するためです. # [ruby-dev:32000] は encoding 名を 'binary' という名前ではなく # 'identity' という名前にしておけば # わざわざ条件分けする必要がなかったという話であり, # binary 明示の encoding が必要ということに変わりはありません. Ruby の中だけですべて閉じているならば binary の明示がなくても何とかなるのかもしれませんが, 外部ライブラリとの連携時に Ruby/Tk のケースと類似したことが 発生する可能性は十分にあると思います. もちろん,従来と同様に独自に印をつけることは可能ですが, Encoding の体系の中に組み入れた方が無理なく扱うことができます. > しかも、binaryを導入してもほんとうに正しくbinaryが適用できる > 局面がどれだけあるかと考えると、機械が自動的に判断することは > 不可能だと思います。ので、現状のASCII-8BITと同格にbinaryなる > ものを導入することには賛成しません。 はい. もちろん自動的な判断をさせることは考えていませんし, それは不可能だと思います. スクリプト上で明確に指定した場合に設定されるべきものです. ですので, > しかし、人間が自覚の上で「これは変換されない」と指定すること > には問題はないと思いますので、binaryというencoding(その実体は > ascii-8bitのレプリカ)を用意して、明示的にforce_encodingする > (あるいは外部エンコーディングとして指定する)というスタイルな > ら反対はしません。 というように明示することしか考えていませんでした. # default_external に設定できないようにするのがよいと思いますが, # I/O の encoding としては指定できるようにするのは便利かも. -- 永井 秀利 (九工大 知能情報) nagai@ai.kyutech.ac.jp