问题标签 [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.
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 上编辑过)
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 字符?
谢谢!
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编写程序。