質問: false then //ファイルに出力する io.puts(output) <--------エラーの48行目。ここで指摘されている puts(output) //コンソールにも出力する output.clear end end ### 試したこと エラーで指摘されている48行目の io.puts(output) を io.puts(output.encode(Encoding::Windows_31J, undef: :replace)) にするとエラーは解消されたが、 生成されたCSVファイルの中身を確認するとruby1.9.3でコンパイルしたものと まるっきり別物でした。i.e Not期待値 ### 確認したい事は下記2点です 1点目; ruby1.9.3とruby2.2系で文字コードに関する部分の処理で ガードが厳しくなるような仕様変更が入ったのかを確認したい 2点目: ruby2.2系で上記のEncoding::UndefinedConversionErrorを回避するには、どこをいじればよいか? Excel/CSVを扱う上での宿命といえば宿命なんでしょうか?
回答: UnicodeのU+03E8の文字が実際に使われているとは思えず、03E8 が10進で1000であることからして、文字で無いデータを文字として扱ったためのエラーでは無いかと思います。 出ている情報が少ないため、これくらいしか言えません。