Ruby CSV不正确的第一个字符

时间:2016-06-05 20:00:46

标签: ruby excel csv

我有一个xlsx文件,我执行以下操作将其导出为.csv:

  • 使用excel,默认编码
  • 将xlsx文件导出为csv
  • 用记事本打开.csv文件,通过指定编码utf8再次保存(记事本保存BOM)
  • 使用CSV.read(path_to_file)
  • 打开文件

它似乎运行良好,但由于某种原因,第一个标题被一些未知字符损坏(我不知道它是什么,当我尝试复制粘贴它消失时,它表示为一个大的白色矩形在Windows中)

Unknown character

当我使用任何文本编辑器打开文件时,似乎不是问题

第一行看起来像:Id;Type....

如果这有帮助

csv.headers.first # => ".Id" where . is that character
csv.headers.first.first.bytes # => [239, 187, 191]
csv.headers.first.first.b # => "\xEF\xBB\xBF"

我该如何解决?

Windows 10,Ruby 2.2

1 个答案:

答案 0 :(得分:1)

这是UTF-8 BOM。 尝试设置如下模式:

CSV.read(path_to_file, 'r:bom|utf-8')