.NET的GzipStream是否与Qt基于zlib的qCompress / qUncompress兼容?

时间:2010-12-30 06:21:19

标签: .net qt compression gzip zlib

.NET的GzipStream是否与Qt基于zlib的qCompress / qUncompress兼容?我相信他们都使用了deflate算法,所以我能用.NET的DeflateStream或GzipStream来读取Qt的qCompress写的数据,并编写Qt的qUncompress可读的数据,而不用在.NET中完全重新实现zlib吗?

1 个答案:

答案 0 :(得分:2)

我对此表示怀疑。首先,qCompress()将数据大小放在前4个字节中,这与zlib标准无关。你可能希望跳过这些字节,但这是一个肮脏的黑客。其次,当qCompress()使用compress2()调用时,GzipStream听起来像读取Gzip格式(zlib格式设计用于压缩文件),该调用使用另一种为内存压缩设计的zlib格式。

qCompress()和qUncompress()旨在相互协作,仅此而已。如果您需要与其他代码兼容,请直接使用zlib,它既简单又便携。事实上,我们在公司做这件事 - 服务器使用Qt,客户端使用.Net和Java。效果很好。