Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UTF-8、CSV导入、Rails 4中的字节序列无效_Csv_Encoding_Utf 8_Ruby On Rails 4_Rake Task - Fatal编程技术网

UTF-8、CSV导入、Rails 4中的字节序列无效

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 这已经正常工

我有一个从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
这已经正常工作了,但是对于一个新的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中。当你看到它看起来正确时就把它合上。然后上传

一个很长的非编程解决方案,但对我来说已经足够了

资料来源如下: