Ruby CSV不正确的第一个字符

我有一个xlsx文件,我做以下将其导出为.csv:

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

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

未知的字符

当我用任何文本编辑器打开我的文件时,似乎没有问题

第一行看起来像: 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

这是UTF-8 BOM。 尝试设置像这样的模式:

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