Я просмотрел другие посты, связанные с ruby / encoding, но не смог выяснить, почему следующее не работает. Скорее всего, только потому, что я плотный, но вот ситуация.
Использование Ruby 1.9 в Windows. У меня есть набор CSV-файлов, которым нужно добавить некоторые данные в конец каждой строки. Всякий раз, когда я запускаю свой сценарий, добавленные символы являются бредом. Вводимый текст выглядит как кодировка IBM437, а моя строка, которую я добавляю, начинается с US-ASCII. Ничто из того, что я пробовал в отношении принудительного кодирования входных строк или строки добавления, похоже, не влияет на результирующий вывод. Я в тупике. Текущая версия кодировки просто последняя, которую я пробовал.
def append_salesperson(txt, salesperson)
if txt.length > 2
return txt.chomp.force_encoding('US-ASCII') + %(, "", "", "#{salesperson}")
end
end
salespeople = Hash[
"fname", "Record Manager"]
outfile = File.open("ActData.csv", "w:US-ASCII")
salespeople.each do | filename, recordManager |
infile = File.open("#{filename}.txt")
infile.each do |line|
outfile.puts append_salesperson(line, recordManager)
end
infile.close
end
outfile.close