我正在尝试在数据迁移中加载成员数据库。相当多的名字都有特殊字符,如“Ciarán”。我设置了一个这样一个简单的例子:
require 'rubygems'
require 'fastercsv'
FasterCSV.foreach("/Users/developer/Work/madmin/db/data/Members.csv") do |row|
puts row.inspect
end
我得到了以下内容:
/usr/local/lib/ruby/gems/1.8/gems/fastercsv-1.5.0/lib/faster_csv.rb:1616:in `shift': FasterCSV::MalformedCSVError (FasterCSV::MalformedCSVError)
当我用这个名字命中行时。
我一直在谷歌搜索字符编码和UTF-8,但还没有找到解决方案。我想保留特殊字符,但不必编辑失败的每个成员名称。
发布于 2018-07-25 16:44:34
如果需要更改编码,你可以将编码选项传递给FasterCSV。例如,要告诉它使用UTF-8,可以这样做:
require 'rubygems'
require 'fastercsv'
FasterCSV.foreach("some file.csv", :encoding => 'u') do |row|
puts row.inspect
end
编码选项列在新的文档中(http://fastercsv.rubyforge.org/classes/FasterCSV.html#M000018)
。
发布于 2018-07-25 18:08:20
可以通过设置KCODE来解决。例如:
$KCODE = "U"
把这个放在顶部。
詹姆斯·爱德华·格雷(JamesEdwardGray)也表示,他对FasterCSV增加了编码支持,但它只在主干中。
https://stackoverflow.com/questions/-100000418
复制相似问题