我有一个rake任务,从CSV文件填充我的数据库:
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
这已经正常工作,但是使用新的CSV文件,我在CSV文件的第6行收到以下错误:
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|
到:
CSV.foreach(file, encoding: "r:ISO-8859-1", :headers => true) do |row|
这些似乎都没有解决问题。
建议?
答案 0 :(得分:0)
我通过将文件保存为MDOS CSV而不是标准CSV文件或Windows CSV格式来解决此问题。
答案 1 :(得分:0)
我的答案是获取CSV文件并将其保存到文本文件中。然后用逗号替换选项卡。然后将文件保存为UTF-8编码。最后,将.txt更改为.csv并确保它在Excel中工作但不要将其保存在Excel中。当你看到它看起来正确时,请关闭它。然后上传它。
长期的非编程解决方案,但就我的目的而言,这已经足够了。
来源在这里:https://help.salesforce.com/apex/HTViewSolution?id=000003837&language=en_US