Я уже несколько месяцев использую rake-файл для чтения данных из CSV-файла. Недавно я попытался прочитать новый CSV-файл, но продолжаю получать ошибку «недопустимая последовательность байтов в UTF-8». Я попытался вручную определить, в чем проблема, но без особого успеха. Файл csv - это просто текст и URL-адреса, изначально было несколько необычных символов (где в исходном тексте были причудливые маркеры), но я удалил их и не могу найти никаких дополнительных аномалий.
Есть ли способ обойти эту проблему автоматически и определить и удалить проблемных персонажей?
2 ответа
Я нашел решение отбросить все недопустимые байты utf8 из строки:
ic = Iconv.new('UTF-8//IGNORE', 'UTF-8')
valid_string = ic.iconv(untrusted_string + ' ')[0..-2]
(взято из этого сообщения в блоге)
Надеюсь это поможет.
Куда вы их кладете? У меня примерно так:
CSV.foreach("/Users/CarlBourne/Customers/Lloyds/small-test2.csv", options) do |row |
name, workgroup, address, actual, output = row
next if nbname == "NBName"
@ssl_info[name] = workgroup, address, actual, output
ic = Iconv.new('UTF-8//IGNORE', 'UTF-8')
clean = ic.iconv(output + ' ')[0..-2]
puts clean
end
Однако это не работает.
Похожие вопросы
Новые вопросы
ruby-on-rails-3
Ruby on Rails - это фреймворк для веб-разработки с открытым исходным кодом, написанный на Ruby. Ruby on Rails следует принципу соглашения о конфигурации, освобождая вас от необходимости заново изобретать вещи, чтобы оставаться продуктивными. Используйте этот тег только для вопросов, касающихся Rails 3, а также пометьте эти вопросы [ruby-on-rails].