CSV导入到Heroku Postgres DB的外来字符问题

时间:2013-06-19 09:03:37

标签: ruby-on-rails ruby ruby-on-rails-3 postgresql heroku

我有一个rails应用程序,我的用户可以通过Web表单手动设置产品。这很好用并且很好地接受外来字符,例如'Svölk'这样的字。

我现在需要批量导入产品并使用FasterCSV来执行此操作。通常这没有问题,但是当CSV包含外来字符时,它会在那时停止。

我是否认为文件首先需要是UTF-8?

另外,我正在运行Ruby 1.8.7,那么ICONV是我转换文件的唯一解决方案吗?这可能是一个问题,因为原始文件的格式将不知道。

让其他人遇到过这个问题,如果有的话,你是如何克服它的?

1 个答案:

答案 0 :(得分:1)

您有两种选择:

  • 使用ensure_encoding gem查找字符串的实际编码。
  • 使用Ruby来确定文件编码:

File.open(SOURCE_FILE).read.encoding

我更喜欢第一种方法,因为它尝试检测基于字符串的编码,并尝试转换为所需的编码(UTF-8),然后您可以在FasterCSV options上设置编码。