У меня есть сценарий Ruby, который читает некоторые CSV-файлы, обрабатывает их и записывает (новый) набор CSV-файлов.Я использую Ruby 1.9.2 и новый стандартный гем csv (раньше это был FasterCSV).Исходные CSV-файлы содержат не-ascii символы (é и т. Д.), Но они выходят из Excel, поэтому кодировка не записывается должным образом.В частности, когда я загружаю файл в ruby, я получаю это:
require 'csv'
t = CSV.table('file.csv',:converters=>nil)
t.to_s.encoding
# encoding is ASCII-8BIT
Несмотря на то, что фактическая строка - UTF-8.Моя проблема в том, что я не могу получить эту строку, которая помечена как ASCII для фактического преобразования в UTF-8.Когда я пытаюсь это сделать:
require 'csv'
t = CSV.table('file.csv',:converters=>nil)
f = File.new('output.csv','w:utf-8')
f.write(t.to_s.force_encoding('utf-8'))
f.close
Выходной файл все еще отображается как закодированный в ASCII.Что мне нужно сделать, чтобы получить выходной файл для кодирования в UTF-8?