我有一个 CSV 文件,其中包含这样的行:
...,"Städtische Galerie im Lenbachhaus",...
我正在使用带有 FasterCSV gem 的 Ruby 1.8,如下所示:
FasterCSV.foreach(file, :encoding => 'u', :headers => :first_row) do |r|
as = ImportObject.create!(r.to_hash)
end
对于大多数行,它工作正常,但对于这些行,带有特殊字符的字段被截断,因此我们将“St”保存在数据库中。
我已经把 $KCODE="u" 和有/没有编码选项,无济于事。
数据库是 MySQL。
编辑:
我尝试将代码推送到 Heroku (Postgres),现在得到一个新错误:
2011-02-19T17:19:01-08:00 app[web.1]: ActiveRecord::StatementInvalid (PGError: ERROR: invalid byte sequence for encoding "UTF8": 0xe46474
2011-02-19T17:19:01-08:00 app[web.1]:提示:如果字节序列与服务器预期的编码不匹配,也可能发生此错误,该编码由“client_encoding”控制。
2011-02-19T17:19:01-08:00 app[web.1]: : INSERT INTO "import_objects" (... "title", ...) VALUES (..., 'St?dtische Galerie im Lenbachhaus',...)返回“id”):
:(