From: madoka yamamoto Date: 2009-03-03T14:45:40+09:00 Subject: [ruby-dev:38118] CSV.readでブロック こんにちは、山本ともうします。 trunkでCSVで日本語のファイルを読み込もうとしたところ、 ブロックしてしまう現象をみつけました。 詳細は追いかけていないのですが、 1024バイト以上のデータを読み込む際に、 エンコード周りを原因とした 無限リトライになっているようです。 $ cat csv_block.rb # -*- coding: utf-8 -*- require 'csv' fn = "a.csv" open(fn, "w"){|f| f.write("あ"*342) } CSV.read(fn, {:encoding => "utf-8"}) $ ruby -v csv_block.rb ruby 1.9.2dev (2009-03-03 trunk 22714) [i686-linux] ^C/usr/local/lib/ruby/1.9.2/csv.rb:2264:in `block in encode_str': Interrupt from /usr/local/lib/ruby/1.9.2/csv.rb:2264:in `map' from /usr/local/lib/ruby/1.9.2/csv.rb:2264:in `encode_str' from /usr/local/lib/ruby/1.9.2/csv.rb:2278:in `read_to_char' from /usr/local/lib/ruby/1.9.2/csv.rb:1990:in `init_separators' from /usr/local/lib/ruby/1.9.2/csv.rb:1570:in `initialize' from /usr/local/lib/ruby/1.9.2/csv.rb:1330:in `new' from /usr/local/lib/ruby/1.9.2/csv.rb:1330:in `open' from /usr/local/lib/ruby/1.9.2/csv.rb:1395:in `read' from csv_block.rb:7:in `
'