Ошибка кодировки Ruby CSV UTF8 при чтении
Это то, что я делал:
csv = CSV.open(file_name, "r")
Я использовал это для тестирования:
line = csv.shift
while not line.nil?
puts line
line = csv.shift
end
И я столкнулся с этим:
ArgumentError: invalid byte sequence in UTF-8
Я прочиталответ здесь и это то, что я пытался
csv = CSV.open(file_name, "r", encoding: "windows-1251:utf-8")
Я столкнулся со следующей ошибкой:
Encoding::UndefinedConversionError: "\x98" to UTF-8 in conversion from Windows-1251 to UTF-8
Затем я наткнулся на камень Ruby - charlock_holmes. Я решил, что попробую использовать его, чтобы найти кодировку источника.
CharlockHolmes::EncodingDetector.detect(File.read(file_name))
=> {:type=>:text, :encoding=>"windows-1252", :confidence=>37, :language=>"fr"}
Итак, я сделал это:
csv = CSV.open(file_name, "r", encoding: "windows-1252:utf-8")
И все же получил это:
Encoding::UndefinedConversionError: "\x8F" to UTF-8 in conversion from Windows-1252 to UTF-8