Compression gzip只能存储zip这样的文件而不能压缩它吗?

Compression gzip只能存储zip这样的文件而不能压缩它吗?,compression,gzip,deflate,Compression,Gzip,Deflate,gzip是否可以不压缩文件?在这种情况下会发生什么?存档是否仍包含放气流?我需要在我的程序中处理这种特殊情况。是的,如果文件不可压缩,例如如果它已经压缩,gzip将生成一个存储块,其中包含附加了一些头和尾的源数据 如果需要,您可以制作自己的非压缩流。RFC 1951第3.2.3节和第3.2.4节描述了它是如何完成的 Deflate存储块基本上是一个单字节,其值为0x00或0x01(BTYPE=00,BFINAL=0,1),后跟4个字节的LEN和NLEN,后跟实际数据。LEN是数据字节数(2^16

gzip是否可以不压缩文件?在这种情况下会发生什么?存档是否仍包含放气流?我需要在我的程序中处理这种特殊情况。

是的,如果文件不可压缩,例如如果它已经压缩,gzip将生成一个存储块,其中包含附加了一些头和尾的源数据

如果需要,您可以制作自己的非压缩流。RFC 1951第3.2.3节和第3.2.4节描述了它是如何完成的

Deflate存储块基本上是一个单字节,其值为0x00或0x01(BTYPE=00,BFINAL=0,1),后跟4个字节的LEN和NLEN,后跟实际数据。LEN是数据字节数(2^16=64KB),NLEN是一个人的补码。如果超过64KB,则必须多次执行此操作。最后一个块的BFINAL位应设置为1


最后,您必须使用gzip头RFC1952(假设它是一个gzip流,否则请检查RFC1950以获取ZLIB)来预先结束所有这些。标题包含文件名、时间戳等。您需要花几个小时的时间来理解规范。

为什么不直接测试它(例如,使用
-1
--fast
选项处理已压缩的数据)?决定进行最终重新开放投票的人,请确保在投票前编辑OP决定在Meta上发布的问题的所有必要信息。@AlexeiLevenkov应要求进行投票。用户1095108,我希望我能公正地回答这个问题。我想如果你不同意我所做的编辑,你应该知道如何回退。我想请那些反对者撤销他们的投票,这主要是由于元效应。我们现在知道,OP不仅做了之前的研究,而且在这里询问之前还咨询了权威人士。现在的问题也说明了这一点。我理解gzip规范,但不知道deflate。gzip包含deflate。Gzip只是Deflate周围的头和尾的包装。