From: "たけ (tk)" Date: 2000-11-15T00:23:04+09:00 Subject: [ruby-dev:11515] Re: Wha t does "str[n]" return? たけ(tk)です。 Kazuhiro NISHIYAMA さん曰く。 》ASCIIって7ビットだったような気が。 》マニュアルにも任意の長さのバイト列を扱うと書いてあったはず。 》バイト列を扱うもので文字コードを意識するのはparserとRegexpだけ 》じゃないんでしょうか?  はい、すべてご指摘の通りです。  ただし、この趣旨は、「バイト列」の各バイトを「バイト文字コード系の文字 コード」という特殊な文字コードとして考えてみたらどうなるかという、思考実 験でした。  現行の String に入っている一つ一つの「バイトデータ」は (1)ASCII の範囲ではそのまま文字コードに対応している。 (2)SJISの場合には、半角かなの文字コードにも1:1で対応している。 (3)漢字部分については、漢字の前半バイトと漢字の後半バイトが「バイトデー タ」に1:1で対応している。(UFT-8 なら第1バイト、第二バイト・・と対応 している)。 という形で、「不完全な文字コード」になっている。  この「不完全な文字コード」も「一種の文字コード(バイト文字コード)」で ある、と仮定して考えてみると、現状の str[n] も既に「不完全な文字コード」 を返している。となる。  従って、将来の str[n] が完全な文字コードを返すようになっても、「仕様変 更」ではなく「拡張の拡張」になるのではないか。現状ではバイト文字コード系 の文字コードだけしか返せないが、バイト文字コード系以外の文字コードを返せ るようになる、という拡張と考えることが出来るのではないか、という趣旨であ りました。  −−  ただし、「String が他の文字コード系での文字コードを返しても」の部分に ついては、「String のサブクラスが他の文字コード系での文字コードを返す」 「String 自体は現行通り(バイト文字コード系の文字コードを返す)」とすべ きだと考えています。(思考実験の結論としては String 自体を拡張しても問題 はないが、実際上の混乱を回避する必要があるため)。 たけ(tk) ggb03124@nifty.ne.jp http://member.nifty.ne.jp/take_tk