バージョン
ruby 2.6.5
現象
以下のようにCSV.newする時にGZipReaderを渡すとCSV::Parser::InvalidEncodingが出てエラーになります。
code
gz = Zlib::GzipReader.new(File.open("file/to/path"))
CSV.new(gz).each_with_index do { }
error
.rbenv/versions/2.6.5/lib/ruby/2.6.0/csv/parser.rb:314:in `rescue in parse': Invalid byte sequence in UTF-8 in line 78512. (CSV::MalformedCSVError)
考えられる要因
csv/parser.rb の202行目でinput.getsする時にchunksizeを指定していますが、この値によって、chunkが変なところで切られているように見えます。
それによって、utf8のバリデーションが失敗し、上記エラーが出ているように見えます。
ruby 2.5系では発生しません。