GzipReader可以接受"一个IO或类似IO的对象"作为输入,如文档中所述.

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

我该如何解开绳子?

推荐答案

上述方法对我不起作用

我实施的工作是:

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

Ruby相关问答推荐

类似于模块的 attr_accessor 和 attr_reader 的东西?

有没有更好的方法来加入剩余不变的子列表?

为什么 Rake 不能连续调用多个任务?

Coffeescript 中等效的 Ruby .times

Ruby:如何卸载设计(uninstall Devise)?

将方法应用于数组/可枚举中的每个元素

我可以在 Ruby 2.x 中要求命名参数吗?

Broken pipe (Errno::EPIPE)

有没有办法在 RSpec 中取消存根?

如何从 SystemStackError 中获取回溯:堆栈级别太深?

对于基于 GitHub 的 gem,强制Bundle 安装使用 https:// 而不是 git://

在不同的换行符上拆分

ActiveSupport::Memoizable 指的是哪种 Ruby memoize 模式?

在 Ruby 中计算中位数

测试变量是否等于两个值之一

如何在 Ruby 中将类构造函数设为私有?

Ruby中的urldecode?

Ruby 中的 each 和 collect 方法有什么不同

如何使用 Ruby-Rails 删除文件夹的所有内容?

要散列的散列数组