【发布时间】:2018-10-15 14:01:41
【问题描述】:
我知道 File 应该采用 encoding: 'bom|utf-8' 但因为流没有等价物。我的服务器正在获取一个 zip 文件,其中包含一个具有 bom 的 csv。将 csv 保存为文件而不是仅使用 CSV.new(Zip::InputStream::open(zip_file).get_next_entry.get_input_stream) 似乎很愚蠢,但是没有一个可以检测和剥离字节顺序标记(bom),如果 bom 存在,CSV 尝试解析标头失败。
我看到CSV.new 将encoding 作为一个选项,但至少在2.3.0 中,它无法识别bom (ArgumentError: unknown encoding name - bom)
【问题讨论】:
-
应该是
"BOM|UTF-8"而不仅仅是"bom"。 -
当然,我尝试过这个以及所有不同的排列方式。
-
获取
Encoding.name_list显示没有与bom大小写不变量或子字符串有任何相似性的编码。我很好奇BOM编码的来源。
标签: ruby csv encoding inputstream