Zlib::GzipReader可以接受“一个IO或类似IO的对象”。作为输入,如docs中所述。

Zlib::GzipReader.open('hoge.gz') {|gz|
  print gz.read
}

File.open('hoge.gz') do |f|
  gz = Zlib::GzipReader.new(f)
  print gz.read
  gz.close
end

我应该如何为字符串解压缩?

最佳答案

上面的方法对我不起作用。
我一直收到incorrect header check (Zlib::DataError)错误。显然,它假定默认情况下您具有标题,但情况并非总是如此。

我实现的工作是:

require 'zlib'
require 'stringio'
gz = Zlib::GzipReader.new(StringIO.new(resp.body.to_s))
uncompressed_string = gz.read

关于ruby - 如何在ruby中解压缩Gzip字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1361892/

10-13 03:20