【发布时间】:2010-01-23 01:21:28
【问题描述】:
我不太熟悉将 ruby 用于二进制数据。我正在使用 mechanize 将大量 csv 文件下载到我的本地磁盘。然后我需要在这些文件中搜索特定的字符串。
我使用 mechanize 中的 save_as 方法来保存文件(将文件保存为二进制文件)。文件的内容类型(根据mechanize)为:
application/vnd.ms-excel;charset=x-UTF-16LE-BOM
从这里开始,我不确定如何读取文件。我已经尝试将它作为 ruby 中的普通文件读取,但我只是得到二进制数据。我也试过只使用标准的 unix 工具(字符串/grep)来尝试搜索,但没有任何运气。
当我对其中一个文件运行“文件”命令时,我得到:
foo.csv: Little-endian UTF-16 Unicode Pascal program text, with very long lines, with CRLF, CR, LF line terminators
我可以用 cat 或 vi 很好地查看数据。使用 vi 我还可以看到一些控制字符。
我也尝试了 csv 和 fastercsv ruby 库,但我得到了“IllegalFormatError”异常。我也试过 this solution 没有任何运气。
任何帮助将不胜感激。谢谢。
【问题讨论】: