【问题标题】:Ruby CSV incorrect first characterRuby CSV 不正确的第一个字符
【发布时间】:2016-06-05 20:00:45
【问题描述】:

我有一个 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

【问题讨论】:

标签: ruby excel csv


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    相关资源
    最近更新 更多