From: "U.Nakamura" Date: 2007-10-15T02:13:15+09:00 Subject: [ruby-dev:32056] Re: multibyte string/regex literal with escape sequence こんにちは、なかむら(う)です。 In message "[ruby-dev:32042] Re: multibyte string/regex literal with escape sequence" on Oct.13,2007 01:54:44, wrote: | > 「わかる」ことはそれ自体嬉しいことだと思うのですが、それじゃ | > 弱いということですかね。 | | しばらく考えていたのですが、「わかる」ということは「意識しな | ければならない」ということでもあります。 | | たとえば G というものを考えると、LATIN CAPITAL LETTER G とい | う文字を表現したいのか 0x47 というバイトを表現したいのか常に | 意識する必要があります。 | | それを意識すべきだ、という主張なのだとは思うのですが、あんま | り意識しない慣習があるのもたしかだと思います。 なんか既に成瀬さんから意見が出て話が進んでるようですが、私が 「バイナリ」という言葉で意図していたのは、今のASCII-8BITとい う名前で示されているものでした。 つまり、何が「わかる」と嬉しかったのかというと、 * ある文字列に8bit目が立っているデータが含まれていること * しかしそれは現在デフォルトとなっているエンコーディングの 文字列というわけではないということ が「わかる」と嬉しい、という意味でした。 あの話を出した前後では、 * US-ASCIIというエンコーディング名の文字列が8bitデータを含 むことがあり、 * US-ASCIIを名乗る文字列が相互に連結できないことがあるがエ ンコーディング名からはそれを事前に知る方法がなく、 * さらに話の流れによっては8bitデータを含む文字列はデフォル トのエンコーディング(例えばEUC-JPとか)として扱われる方向 になるかもしれなかった という状況でした。 まだいろいろどうなるかわかってないんですが、とりあえず私が懸 念していた点に関しては、ASCII-8BITというエンコーディング名が 導入されたことと、今後US-ASCIIが別の形で定義されそうだという ことから、今はあんまり不安視はしていません。 | ASCII とバイナリを完全に分離するということは、このような表現 | をプログラム上で行うときにはその表現が ASCII を前提としたも | のであることを陽に記述しなければならないことを意味します。 | | たとえば、/\AGIF/ =~ image とかは動かないわけです。 | image がバイナリとすれば、内部に LATIN CAPITAL LETTER G とい | う文字は存在し得ないわけですから。 | | それでもそれが正しいという主張はたしかにあり得ると思いますし、 | 非 ASCII 環境 (EBCDIC とか) に対してもポータブルになる利点は | 考えられるとは思うのですが、それって ASCII を前提にした表現 | の慣習を捨てるほど嬉しいものなんですかね? まさにその田中さんと同じ懸念から、ASCII-8BITとは別のBINARYと いうエンコーディングを導入する必要はないのではないかと思いま す。 # どうも自分の主張に筋が通ってない気もする それでは。 -- U.Nakamura