2

我正在尝试在我的数据迁移中加载一个成员数据库。不少名字都有特殊字符,例如“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,但还没有找到解决方案。我想保留特殊字符,但不想编辑每个失败的成员名称。

非常感谢,布雷特

4

2 回答 2

4

它对我来说可以立即使用,但是如果您需要更改编码,可以将编码选项传递给 FasterCSV。例如,要告诉它使用 UTF-8,你可以这样做:

require 'rubygems'
require 'fastercsv'

FasterCSV.foreach("some file.csv", :encoding => 'u') do |row|
  puts row.inspect
end

编码选项列在new.

于 2009-08-25T14:28:45.340 回答
3

我在别处读到,这可以通过设置 KCODE 来解决。例如:

$KCODE = "U"

把这个贴在上面。

James Edward Gray 也表示他已经为 FasterCSV 添加了编码支持,但它只在中继中。

于 2009-08-25T14:14:22.850 回答