В первом случае ваш data_file
в кодировке UTF-8.Во втором случае data_file
имеет двоичное (т.е. 7-битное ASCII) кодирование.
Например, если мы начнем с простого CSV-файла UTF-8:
bank
Caixa Econômica Federal
изатем проанализируйте его в кодировке UTF-8:
CSV.parse(File.open('pancakes.csv', encoding: 'utf-8'))
# [["bank"], ["Caixa Econômica Federal"]]
, а затем в двоичной кодировке:
CSV.parse(File.open('pancakes.csv', encoding: 'binary'))
# [["bank"], ["Caixa Econ\xC3\xB4mica Federal"]]
Так что вам нужно исправить кодировку, прочитав файл в правильной кодировке.Трудно сказать больше, поскольку мы не знаем, как открывается data_file
.
Посмотрите на
line[6].encoding
, и вы должны увидеть #<Encoding:UTF-8>
в первом случае, но #<Encoding:ASCII-8BIT>
во втором.