在Ruby 2.5.0中读取带有BOM的UTF-8

7
有没有一种方法可以在Ruby v2.5.0上读取以UTF-8 BOM(字节顺序标记)编码的文件?
在Ruby 2.3.1上,这种方法是可行的:
 csv = CSV.open(file_path, encoding: 'bom|utf-8')

然而,在2.5.0版本中出现了以下错误:

  ArgumentError:
    unknown encoding name - bom|utf-8 

你可以尝试使用 BOM|utf-8(大写的BOM)吗? - knut
@knut - 使用“BOM|utf-8”、“BOM|utf8”、“BOM|UTF-8”或“BOM|UTF8”时会得到相同的结果。 - romeu.hcf
2
已经有一个错误报告了。 - cremno
我最终得到了:https://gist.github.com/romeuhcf/29132ebd3084b14901f8770f3baac3bf - romeu.hcf
2个回答

2
你也可以尝试这样写:

File.open(file_path, "r:bom|utf-8")

这行代码跟文件读取相关,"r:bom|utf-8"是一个参数。

0
你可以尝试这个:
require 'file_with_bom'

File.open(file_path, "w:utf-8", :bom => true ) do |csv|

end

它工作得很好


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接