问题标签 [zlib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
3765 浏览

delphi - 德尔福 2009 中的 Zlib

我正在将应用程序升级到 Delphi 2009。该应用程序使用 Soap,我们使用 Zlib 压缩肥皂请求和响应流。这在 Delphi 2006 中运行良好,但在 Delphi 2009 中却不行。

所以我回到Delphi 2006,改用FastZlib。它在 Delphi2006 中一切正常,但在 Delphi 2009 中不起作用,我得到解压缩错误。

有没有其他人有这个问题?

我该如何解决这个问题?

桑迪普

0 投票
2 回答
1953 浏览

deployment - maven-war-plugin 与“ZLIB 输入流的意外结束”

我正在使用 maven-war-plugin,有时我在部署到 jboss 时出现 Unexpected end of ZLIB 输入流,这是因为文件是在 jboss 目录中制作的并且没有移动/复制到那里,有没有办法修复它(使用 maven)?

我的配置:

p>

0 投票
4 回答
2070 浏览

zlib - z/OS USS 上的 zlib

我试图在 z/OS USS 上编译 z/lib(那是大型机)。我得到了 gmake 和 c89 编译器(我假设它符合 c89 标准)并且 USS 应该是 POSIX 兼容的。

但是 zlib 似乎正在绊倒

出现以下错误

当我逐步取出 FAR *(我认为它是一个远指针,但我真的不太确定)时,错误就消失了。但由于这是一个库,我不确定通过删除它会产生哪些其他工件。

有人有什么想法吗?

那里有旧的大型机头吗?

0 投票
2 回答
59673 浏览

c# - Python:Inflate 和 Deflate 实现

我正在与一个服务器连接,该服务器需要使用Deflate算法(霍夫曼编码 + LZ77)压缩发送给它的数据,并且还发送我需要的数据到Inflate

我知道 Python 包含 Zlib,并且 Zlib 中的 C 库支持对InflateDeflate的调用,但这些显然不是由 Python Zlib 模块提供的。它确实提供了CompressDecompress,但是当我拨打如下电话时:

我收到以下错误:

Gzip 也好不到哪里去;拨打电话时,例如:

我收到错误:

这是有道理的,因为数据是压缩文件而不是真正的Gzipped文件。

现在我知道有可用的Deflate实现(Pyflate),但我不知道Inflate实现。

似乎有几个选择:

  1. 在 Python中查找InflateDeflate的现有实现(理想)
  2. 为包含InflateDeflate的 zlib c 库编写我自己的 Python 扩展
  3. 调用可以从命令行执行的其他东西(例如 Ruby 脚本,因为zlib 中的Inflate / Deflate调用完全包含在 Ruby 中)
  4. ?

我正在寻找解决方案,但缺乏解决方案,我会感谢您的见解、建设性意见和想法。

附加信息:出于我需要的目的,对字符串进行压缩(和编码)的结果应该与以下 C# 代码片段给出相同的结果,其中输入参数是对应于要压缩的数据的 UTF 字节数组:

为字符串“deflate and encode me”运行这个 .NET 代码会得到结果

当“deflate and encode me”通过 Python Zlib.compress() 运行然后 base64 编码时,结果是“eJxLSU3LSSxJVUjMS1FIzUvOT0lVyE0FAFXHB6k=”。

很明显,zlib.compress() 不是与标准 Deflate 算法相同的算法的实现。

更多信息

.NET deflate 数据(“7b0HY...”)的前 2 个字节,经过 b64 解码后为 0xEDBD,不对应 Gzip 数据(0x1f8b)、BZip2(0x425A)数据或 Zlib(0x789C)数据。

Python 压缩数据(“eJxLS...”)的前 2 个字节,经过 b64 解码后为 0x789C。这是一个 Zlib 标头。

解决了

要在没有标头和校验和的情况下处理原始 deflate 和 inflate,需要进行以下操作:

在放气/压缩:去除前两个字节(标题)和最后四个字节(校验和)。

在膨胀/解压缩:窗口大小有第二个参数。如果此值为负数,它将抑制标头。这是我目前的方法,包括 base64 编码/解码 - 并且工作正常:

0 投票
5 回答
3451 浏览

php - PHP gzcompress vs gzopen/gzwrite

我正在编写一个生成 gzip 文件的 PHP 脚本。我一直在使用的方法是在 PHP 中构建一个字符串,然后 gzcompress() 将该字符串写入脚本末尾的文件中。

现在我正在用更大的文件测试我的脚本并遇到内存分配错误。结果字符串似乎变得太大而无法一次保存在内存中。

为了解决这个问题,我尝试使用 gzopen() 和 gzwrite() 来避免在 PHP 中分配大字符串。但是,使用 gzwrite() 生成的 gzip 压缩文件与我使用 gzcompress() 时非常不同。我尝试了不同的拉链级别,但没有帮助。我也尝试过使用 gzdeflate() 并最终得到与 gzwrite() 相同的结果,但仍然与 gzcompress() 不同。不同的不仅仅是前两个字节(zlib 头),而是整个文件。

gzcompress() 与 PHP 中的其他 gzip 函数有何不同?有没有一种方法可以在逐步产生结果的同时模拟 gzcompress() 的结果?

0 投票
5 回答
2774 浏览

c++ - C/C++ 打包和压缩

我正在从事一个商业项目,该项目需要将几个文件捆绑(打包)到存档中,然后进行压缩。现在我们的实用程序库中有 zlib,但它看起来不像 zlib 具有将多个文件压缩到一个存档中的功能。有谁知道我可以为此使用的免费库?

0 投票
3 回答
3638 浏览

c++ - 在 C++ 中解压缩目录

我正在创建一个可以读取 .docx 纯文本的 C++ 程序。我的攻击计划是将 .docx 重命名为 .zip,然后解压缩。然后,我将包含文档文本的 .xml 文件重命名为 .txt 并将其解析出来。

现在我已经弄清楚了很容易的重命名。我现在正在努力解压缩。我非常精通 C++,但这是我第一次将自己扩展到真实的应用程序并在 STL 库之外使用它。

起初,我尝试了 zlib 库中的许多 C++ 包装器,但无法让它们中的任何一个编译或正常工作(可能是由于环境位于 Cygwin 中)。出于这个原因,我似乎必须默认使用凌乱的 zlib 代码来执行此操作。但是从所有文档和示例中,我可以发现它仅显示 zlib 用于读取 .zip,该 .zip 是一个文件而不是多个文件的压缩。我现在不知道从哪里开始,就像我之前所说的,对于 STL 之外的领域是全新的,我感到非常迷茫。

非常感谢任何帮助或指导!

谢谢,迈克尔

0 投票
3 回答
1520 浏览

ruby - 有没有人尝试在 Ubuntu(最好是 Ubuntu 9)上从源代码安装 ruby​​ 和 ruby​​gems?

Ruby on Rails 网站建议在 Linux 下从源代码安装 Ruby。我在全新安装的 Ubuntu 9 上从源代码构建 ruby​​ 时遇到了许多 C 库问题。

我在网上找到的关于在 Ubuntu 上安装 ruby​​ 的所有说明都涉及使用预打包(基于.deb)的 ruby​​。显然,这不是人们推荐的铁轨。

当我对 ruby​​ 进行干净的源代码构建时,我发现 Rubygems 无法安装,因为 zlib 扩展不起作用。

出现两个问题:

1) zlib 扩展未构建。

解决方案:

i) 确保 zlib 在 ruby​​ 源的 extn 目录中的 Setup 文件中未注释,并且

ii) 确保安装了这些 zlib ubuntu 软件包:

2) 在解决了上面的问题 1 之后(并对 ruby​​ 进行了干净的重建),zlib 仍然无法工作,因为扩展无法加载。

您可以通过运行此命令并获取输出“false”来看到模块无法加载:

我观察到 extn 目录中的任何数量的其他 C 扩展都会发生这种情况,因此这些扩展似乎是一个更普遍的问题,而不仅仅是 zlib 特定的问题。

总结一下:

  • 我的 ruby​​ 构建找到了特定于 ruby​​ 的 C zlib 扩展,但它无法加载 zlib 模块。
  • 此行为似乎发生在 /extn 中的其他扩展上。

有没有办法找出模块无法加载的原因?某种跟踪/详细模式?

0 投票
1 回答
412 浏览

gzip - 我可以使用 zlib 解压缩 .NET GZipStream 吗?

我可以使用 C++ 中的 zlib 库解压缩使用 .NET GZipStream 压缩的字节流吗?

0 投票
4 回答
80595 浏览

python - python中的zlib解压

好的,所以我有一些由 python (2.6) zlib.compress() 函数压缩的数据流。当我尝试解压缩它们时,其中一些不会解压缩(zlib 错误 -5,这似乎是一个“缓冲区错误”,不知道该怎么做)。起初,我以为我已经完成了,但我意识到我无法解压缩的所有文件都是从 0x78DA 开始的(工作的是 0x789C),我环顾四周,这似乎是一种不同的 zlib 压缩——幻数根据使用的压缩而变化。我可以用什么来解压缩文件?我被灌醉了吗?