读完RFC 1951并手动编写一个包含非压缩数据的简单gzip文件 . 未压缩的数据文件只有一个字符'a',没有额外的空格或换行符 . gzip文件的内容是1f 8b 08 00 00 00 00 00 00 03 01 80 00 7f ff 86 43 be b7 e8 01 00 00 00
.
当我试图在Linux系统下解压缩时,它给了我一个错误“gzip:xxx.gz:意外的文件结束” .
我想我遵循了3.2.4中提到的非压缩数据块的deflate格式 . 经过10个字节的gzip头,
-
01
: BFINAL=1 和 BTYPE=00 -
8000
: LEN=1 -
7fff
: NLEN -
86
: a
其次是CRC和尺寸 .
任何人都可以在gzip文件中指出任何错误或缺失的内容吗?非常感谢 .
1 回答
8000
是长度128,而不是1.0100
将是长度1.(有趣的是,您设法正确表示最后的未压缩长度为01 00 00 00
. )a
也是十六进制61
,而不是86
.所以正确的流将是: