From: Hidetoshi NAGAI Date: 2008-01-17T23:39:00+09:00 Subject: [ruby-dev:33161] Re: Binary String 永井@知能.九工大です. From: "NARUSE, Yui" Subject: [ruby-dev:33154] Re: Binary String Date: Thu, 17 Jan 2008 20:25:01 +0900 Message-ID: <478F3B17.4030909@airemix.com> > >> 変換についての文脈では、ASCII only の文字列が ASCII-8BIT で返ってきても > >> 問題はありませんよね。 > >> > >> US-ASCII になった方がいいかもというのには賛成です。以前は「US-ASCII はビ > >> ルトインではないから」というのが理由だったのですが、今は US-ASCII もビル > >> トインされるようになったので。 > >> > > どんな文脈でもASCII onlyの文字列が「ASCII-8BIT」じゃまずいですよ。 > > 「テキストなのにASCII-8BITなのはおかしい」って話だったじゃないですか。 > > ASCII only はエンコーディングに関わらず結合・比較等において特別扱いなの > で、dummy 以外では実際上問題は起きないと思います。 え? この状況は,単にまだ対応できていない/対応が確定していないという ことではないのですか? [ruby-dev:33110] で > なので、[ruby-dev:33049] で言っている通り文字列には encoding が必要だ、 > encoding を設定しよう、となるわけです。テキストデータなのに ASCII-8BIT > のままになっている方がおかしいんですよ。そこから目をそむけて ASCII-8BIT > が混沌としているままな限り、一部のバイナリデータを BINARY で隔離しても問 > 題の解決にはなりません。 > > で、実際のところ、テキストデータに encoding をきちんと設定すれば、ASCII- > 8BIT な string はバイナリデータとしてみなしてしまうので問題ないのではな > いか。何かダメな例ある?というのがこれからの話でしょうか。 と述べられてますが,これを言い換えると,「encoding を指定すれば ASCII-8BIT は付かないんだから,encoding を指定していないのが悪い. だから ASCII-8BIT を binary としても問題ない」ということですよね? つまりは,有効な encoding を指定している限り, 本来は ASCII-8BIT が付与されてはならないのではないのですか? 今回の例は有効な encoding を指定している例と考えていいですよね. # 「矛盾していない」という条件も付くのかも知れませんが, # 少なくとも今回の例は encoding 指定との矛盾はしていないはずです. そこまで強くおっしゃっていたので,互換性を捨てる覚悟をして ASCII-8BIT を binary として扱うことに妥協したのですが... ですから,今回の例を「事実上問題が起きないと思います」で スルーされてしまうと困ります. 現在のところは問題は生じないはずですが,将来,Tcl/Tk 上において StringObj 系の関数で処理するか ByteArrayObj 系の関数で処理するかで 問題が発生する可能性がないとは言い切れません. 「encoding を指定すれば ASCII-8BIT は付かない」という前提であれば, そうした場合でも「正しく encoding を設定することで対応してください」 と言えますが,その前提が成り立たないならば答えの前に 「文字列ひとつひとつに」というのを付けなければならなくなります. それはあまりに要求が厳しいのではないでしょうか. > > この例だったら、エンコーディング指定してある「euc-jp」になるか > > お二人の言うように「US-ASCII」になるべきだと思います。 > > が、この意見には賛成です。もっとも、以前は「EUC-JP」になるべきじゃないか > なぁと思っていたんですが、実際問題としては ascii only な文字列のエンコー > ディングは飾りにすぎないのであまり強い意見は持っていません。 最初は私も euc-jp ではと思いましたが,8bit char を含んでいないなら euc-jp でない方が便利がいいという判断で行っているのかもと思い, US-ASCII と書いてました. ですので,「ASCII-8BIT ではまずいだろう」という以上には どうすべきというような意見は特にありません. -- 永井 秀利 (九工大 知能情報) nagai@ai.kyutech.ac.jp