我需要在 ruby 中读取外部文件。在本地运行file -i
节目
text/plain; charset=utf-16le
我用分隔符 '\t' 在 ruby CSV 中打开它,一行显示为:
<CSV::Row "\xFF\xFEC\x00a\x00n\x00d\x00i\x00d\x00a\x00t\x00e\x00 \x00n\x00u\
...
row.to_s 产生\x000\x000\x000\x001\x00\t\x00E\x00D\x00O
运行puts row
正确显示数据:
0001 EDOARDO A
...(这些值也在 vim 和 LibreOffice Calc 中清晰显示)
任何建议如何在 ruby 中获取数据?我尝试了各种打开 CSV 的组合external_encoding: 'utf-16le', internal_encoding: "utf-8"
等,但puts
它是唯一能提供清晰价值的东西
它还在 ruby CSV 中表示 ASCII-8BIT。
<#CSV io_type:StringIO encoding:ASCII-8BIT lineno:0 col_sep:"\\t" row_sep:"\n" quote_char:"\"" headers:true>
该文件本身是作为 XLS 文件生成的。我在这里上传了一个编辑过的版本(在 gvim 上编辑过)