From: "Y. NOBUOKA" Date: 2011-04-23T23:40:11+09:00 Subject: [ruby-list:48006] Re: CSV.read で読むとUTF-8の扱いがおかしい? 信岡です。 成瀬さん、回答ありがとうございます。 >> 1. CSV ファイルをバイナリモードで開く必要性はあるのでしょうか? 単純に mode 'r' で >> 開けば良いように思うのですが。 > > コード読まずに一般論としてコメントすると、 > UTF-16 など「文字」中に改行コードを含みうる文字コードへの対策や、 > 改行コードをライブラリ側で操作するために、バイナリモードで開く必要性がある場合はありえます。 なるほど。 CSV ファイル中に改行コードが含まれている場所は行と行の区切りの場所だけ だと勘違いしていたのですが、実際にはデータとしての文字列中 (ダブルクォートで囲まれたもの) にも出現する可能性があるのですね。 行と行の区切りだけなら改行コードが CR LF でも CR でも関係ないと思っていたのですが、 文字列中の改行コードを保持するためには確かにバイナリモードじゃなきゃダメですね。 >> 2. CSV クラスのソースファイルのコメントの内容と実際の動作が異なっているわけですが、 >> これはコメントが間違ってるのでしょうか? それとも動作がおかしいのでしょうか? >> (こういうのはバグ報告した方がいいのでしょうか。。) > > コメントと動作が異なっている場合はどちらかが間違っているのでしょう。 > で、どちらが間違っているかはケースバイケースなので、 > 究極的には個別にメンテナが判断することになります。 > > Ruby 自体の話は ruby-dev の方がいいですね。 > 特に、Ruby 自体に変更を要求する話は Redmine の方がさらによいです。 > もっというと、英語が書ける場合、lib/csv.rb は英語な人がメンテナなので、 > 英語だとよりありがたいです。 > けど、英語がつらい場合は日本語でも、翻訳するなり勝手に直すなりするのでOK。 了解しました。 動作についてもうちょっとまとめてから Redmine に投げようかと思います。 ありがとうございます。 -- 信岡 ゆう (NOBUOKA Yu)