0

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

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

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

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

其他人是否遇到过这个问题,如果有,您是如何克服的?

4

1 回答 1

1

您有两种选择:

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

File.open(source_file).read.encoding

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

于 2013-06-19T09:37:37.620 回答