From: Tanaka Akira Date: 2008-01-24T00:33:17+09:00 Subject: [ruby-dev:33331] Re: Binary String In article <47974018.2050207@yahoo.co.jp>, 遊楽庵 writes: > 繰り返しますが、Stringは文字列よりも広い概念だと思っていますので > バイト列でもあってくれないと困ります。 具体的にはどう困るんでしょう? バイト列と ASCII-8BIT な文字列は両方ともなにか 256種類のもの が 0個以上並んでいるという構造なので、過不足なく対応づけるこ とは容易です。 したがって、バイト列に対して可能な操作はすべて ASCII-8BIT な 文字列に対する操作として定義し直すことができます。 したがって、おそらく問題は何かが出来る出来ないということでは なく、概念的というか、考え方に関する話だと思います。 どういう考え方をされているかはメールを読み直してもあまりはっ きりとは読み取れなかったので間違っているのかもしれませんが、 バイト列と文字列が排他的なものだと考えているように感じられま す。 しかし、私はそうは考えていません。String は文字列の側面とバ イト列の側面をあわせもつものだと考えています。これは、バイト 列と文字列は違うレイヤの概念だからです。文字列は (コンピュー タ内では) バイト列にエンコーディングによって文字列としての解 釈を与えることによって表現されます。従って、文字列は常にバイ ト列としての側面を持ちます。とくに Ruby のように、文字列とし ては壊れたバイト列も許すシステムではバイト列の側面がはっきり と見て取れます。 レイヤによる見方の違いをエンコーディングの違いとして表現する ことは概念をうまくとらえていないのではないでしょうか。 -- [田中 哲][たなか あきら][Tanaka Akira]