From: "NARUSE, Yui" Date: 2008-01-12T02:14:07+09:00 Subject: [ruby-dev:33048] Re: Binary String 成瀬です。 Hidetoshi NAGAI wrote: >> しかし、そもそも他のテキストデータが ASCII-8BIT で流れてきていることがむ >> しろ問題なのではないか。BINARY を別に用意することで、そのようなもっと重 >> 要な問題が放置されてしまうのではないか、というのが BINARY 導入に消極的な >> 理由になります。 > > これは ASCII-8BIT を「未定義」状態と見なしているということですよね? > よくわからないのですが,BINARY で「定義」したいという希望に対して > 「未定義」を表している ASCII-8BIT を使えと言っていることになりませんか? これの解釈は2種類あるだろうということ以上は言っていません。Rubyが実際に どちらを取るべきかが今話されていることで、現在は後者だと思います。 * エンコーディング未定義な文字列 * バイト列 >> なので ASCII-8BIT は未定義、BINARY はバイナリデータと分けるという方法も >> あるのでしょうが、同じにして問題に気付きやすくした方が長期的に見れば妥当 >> であろうとの判断です。 > > 明示と非明示との区別ができない状況で, > 「同じにして問題に気付きやすく」とおっしゃられても...(^_^; > 未定義が判別可能にしておくのが筋ではないかと. まず、本当にバイナリデータを明示する必要があるのかという疑問があります。 ASCII-8BIT は全てバイナリデータとして扱っていいのではないでしょうか。今 のところ「エンコーディングを明示する必要があるのにしていないもの」と「バ イナリデータ」の二種類しかないので、問題にならないように感じます。 そもそも、話が「BINARY」の必要性にずれている気がしますが、この話の発端は [ruby-dev:32550] の自動変換ですよね。「ASCII-8BIT な文字列は自動変換しな い」で解決しませんか?変換してほしければ元のエンコーディングを渡す側が設 定するべきです。そのために magic comment もありますし、open(fn, "w:utf-8") 等の記法もありますし、force_encoding だってあります。 わたしも「BINARY」が真に必要な例があればすぐに意見を変えますが(実際以前 はBINARY導入派だった)、今回の件については今のところ「BINARY」を導入すべ きでない事例に見えます。 -- NARUSE, Yui DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA