gpt4 book ai didi

ruby Mechanize : how read downloaded binary csv file

转载 作者:行者123 更新时间:2023-12-04 16:19:08 27 4
gpt4 key购买 nike

我不太熟悉将 ruby​​ 与二进制数据一起使用。我正在使用 mechanize 将大量 csv 文件下载到我的本地磁盘。然后我需要在这些文件中搜索特定的字符串。

我在 mechanize 中使用 save_as 方法来保存文件(将文件保存为二进制文件)。文件的内容类型(根据 Mechanize )是:

application/vnd.ms-excel;charset=x-UTF-16LE-BOM

从这里开始,我不确定如何读取文件。我试过将它作为 ruby​​ 中的普通文件读入,但我只是得到了二进制数据。我也试过只使用标准的 unix 工具(字符串/grep)来尝试搜索,但没有任何运气。

当我对其中一个文件运行"file"命令时,我得到:
foo.csv: Little-endian UTF-16 Unicode Pascal program text, with very long lines, with CRLF, CR, LF line terminators

我可以用 cat 或 vi 很好地查看数据。使用 vi 我也看到了一些控制字符。

我也尝试过 csv 和 fastcsv ruby​​ 库,但我收到了“IllegalFormatError”异常。我也试过 this solution没有任何运气。

任何帮助将不胜感激。谢谢。

最佳答案

您可以使用命令 'iconv' 转换为 UTF-8,

# iconv -f 'UTF-16LE' -t 'UTF-8' bad_file.csv > good_file.csv

标准库中还有一个用于 iconv 的包装器,您可以在将文件读入程序后使用它来转换文件。

关于 ruby Mechanize : how read downloaded binary csv file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2121661/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com