首页 文章

Gzip收缩非压缩数据格式

提问于
浏览
0

读完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头,

  • 01BFINAL=1BTYPE=00

  • 8000LEN=1

  • 7fffNLEN

  • 86a

其次是CRC和尺寸 .

任何人都可以在gzip文件中指出任何错误或缺失的内容吗?非常感谢 .

1 回答

  • 1

    8000 是长度128,而不是1. 0100 将是长度1.(有趣的是,您设法正确表示最后的未压缩长度为 01 00 00 00 . )

    a 也是十六进制 61 ,而不是 86 .

    所以正确的流将是:

    1f 8b 08 00 00 00 00 00 00 03 01 01 00 fe ff 61 43 be b7 e8 01 00 00 00
    

相关问题