UTF-8、CSV导入、Rails 4中的字节序列无效
我有一个从CSV文件填充数据库的rake任务:UTF-8、CSV导入、Rails 4中的字节序列无效,csv,encoding,utf-8,ruby-on-rails-4,rake-task,Csv,Encoding,Utf 8,Ruby On Rails 4,Rake Task,我有一个从CSV文件填充数据库的rake任务: require 'csv' namespace :import_data_csv do desc "Import teams from csv file" task import_data: :environment do CSV.foreach(file, :headers => true) do |row| #various import tasks Invalid byte sequence in UTF-8 这已经正常工
require 'csv'
namespace :import_data_csv do
desc "Import teams from csv file"
task import_data: :environment do
CSV.foreach(file, :headers => true) do |row|
#various import tasks
Invalid byte sequence in UTF-8
这已经正常工作了,但是对于一个新的CSV文件,我在CSV文件的第6行遇到以下错误:
require 'csv'
namespace :import_data_csv do
desc "Import teams from csv file"
task import_data: :environment do
CSV.foreach(file, :headers => true) do |row|
#various import tasks
Invalid byte sequence in UTF-8
我看了这一行,似乎找不到任何不规则的字符
我还尝试了stackoverflow上推荐的几个其他修复:
-将CSV.foreach更改为:
reader = CSV.open(file, "r")
reader.each do |row|
和改变:
CSV.foreach(file, headers => true) do |row|
致:
所有这些似乎都不能纠正这个问题
建议?我解决了这个问题,将文件保存为MDOS CSV,而不是标准CSV文件或Windows CSV格式。我的答案是将CSV文件保存为文本文件。然后用逗号替换制表符。然后将文件另存为UTF-8编码。最后,将.txt更改为.csv,并确保它在Excel中工作,但不要将其保存在Excel中。当你看到它看起来正确时就把它合上。然后上传 一个很长的非编程解决方案,但对我来说已经足够了 资料来源如下: