问题标签 [ruby-csv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
169 浏览

ruby - 无法读取文件字符集 utf-16le,除非放入 ruby

我需要在 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 上编辑过)

0 投票
3 回答
2511 浏览

ruby - Ruby CSV BOM|StringIO 的 UTF-8 编码

红宝石 2.6.3。

我一直在尝试将StringIO对象解析为CSV具有编码的实例bom|utf-8,以便剥离 BOM 字符(不需要的)并将内容编码为 UTF-8:

显然bom|utf-8编码不适用于StringIO对象,但我发现它确实适用于文件,例如:

考虑到我需要StringIO直接使用,为什么会CSV忽略bom|utf-8编码?有没有办法从StringIO实例中删除 BOM 字符?

谢谢!

0 投票
3 回答
79 浏览

ruby - 计算哈希值的等级并将其插入到 Ruby 中的 CSV 文件中

我有一个哈希

h1 = {"Cust1"=>500, "Cust4"=>400, "Cust2"=>100, "Cust3"=>100}

我想将此哈希插入到CSV文件中,并根据其值对键进行排名。

示例输出应如下所示

ID,Sales,Rank Cust1,500,1 Cust4,400,2 Cust2,100,3 Cust3,100,3

我必须用Ruby编写程序。