gpt4 book ai didi

ruby - 使用 Ruby 自动打开二进制文件

转载 作者:数据小太阳 更新时间:2023-10-29 06:35:02 26 4
gpt4 key购买 nike

我正在使用 Ruby 1.9 打开多个文件并将它们复制到存档中。现在有一些二进制文件,但有些不是。由于 Ruby 1.9 不会自动打开二进制文件作为二进制文件,有没有办法自动打开它们呢? (所以“.class”是二进制的,“.txt”不是)

最佳答案

实际上,Alex D 之前的回答是不完整的。虽然 Unix 文件系统中确实没有“文本”模式,但 Ruby 确实在以二进制和非二进制模式打开文件之间有所区别:

s = File.open('/tmp/test.jpg', 'r') { |io| io.read }
s.encoding
=> #<Encoding:UTF-8>

不同于(注意“rb”)

s = File.open('/tmp/test.jpg', 'rb') { |io| io.read }
s.encoding
=> #<Encoding:ASCII-8BIT>

后者,作为 docs例如,将外部编码设置为 ASCII-8BIT,这会告诉 Ruby 不要尝试以 UTF-8 解释结果。您可以通过使用 s.force_encoding('ASCII-8BIT') 显式设置编码来实现相同的目的。如果您想将二进制读入字符串并移动它们(例如将它们保存到数据库等),这是关键。

关于ruby - 使用 Ruby 自动打开二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8929610/

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