加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 什么可以解释“无效的存储块长度”错误?

发布时间:2020-12-17 02:43:43 所属栏目:百科 来源:网络整理
导读:我在Vagrant虚拟盒中的基本Ubuntu lucid32映像上运行带有 Ruby 1.9.3p194的Rails(3.2.3)应用程序.虚拟盒正在Leopard上运行,因为它的价值.我正在尝试在应用程序中使用rubyzip来解压缩zip存档–2009_da_lmp.zip.直接使用rubyzip存储库中的示例代码,我可以确认
我在Vagrant虚拟盒中的基本Ubuntu lucid32映像上运行带有 Ruby 1.9.3p194的Rails(3.2.3)应用程序.虚拟盒正在Leopard上运行,因为它的价值.我正在尝试在应用程序中使用rubyzip来解压缩zip存档–2009_da_lmp.zip.直接使用rubyzip存储库中的示例代码,我可以确认我可以列出存档文件内容:

#f is the absolute path to 2009_da_lmp.zip (string)
Zip::ZipFile.open(f) { |zf| zf.entries[0] }  
 => 20090101_da_lmp.csv #that is indeed a file in the archive.

使用存储库中示例中的更多代码,我尝试获取存档中的实际文件:

Zip::ZipInputStream.open(f) { |zis|
  entry = zis.get_next_entry
  print "first line of '#{entry.name}' (#{entry.size} bytes: ) "
  puts "'#{zis.gets.chomp}'" }

=> first line of '20090101_da_lmp.csv' (826610 bytes: ) Zlib::DataError: 
   invalid stored block lengths #and a long stack trace I can provide 
                                #if that might help

Mac OS解压缩实用程序将存档解压缩.我想知道它是否是某种编码相关的东西(我的语言环境设置为en_US.UTF-8,因为在开发中使用PostgreSQL不那么痛苦),但我不知道如何判断是否是这种情况.我找不到任何可能导致此错误的信息.

解决方法

这是将随机数据提供给inflater时发现的典型错误.实际上,您将从随机数据中获得此错误大约1/4的时间(当第一个字节的低三位为000或001时).所以我猜想,由于某种原因,通货膨胀只是从错误的字节开始.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读