2016-09-04 8 views
0

RFC 1951を読んだ後、非圧縮データを含む単純なgzipファイルを手作業で書きました。圧縮されていないデータファイルには、空白または改行を加えずに1文字の「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です。Gzip圧縮されていないデータ形式

Linuxシステムで解凍しようとすると、「gzip:xxx.gz:予期しないファイルの終わり」というエラーが表示されました。

私は3.2.4で述べた非圧縮データブロックの圧縮フォーマットに従ったと思います。 10バイトgzipヘッダの後に、

  1. 01BFINAL = 1BTYPE =
  2. 8000 00:LEN = 1
  3. 7fffNLEN
  4. 86

続いてCRCとサイズ。

gzipファイルに何か間違っているか不足していると指摘できますか?どうもありがとう。

答えて

1

8000は、長さ1(興味深いことに、あなたは正しく01 00 00 00として最後に総非圧縮の長さを表現するために管理。)

またaだろう長さ128、ない1 0100ある六角61、ない86です。

だから、正しいストリームは次のようになります。お返事、博士Adlerの

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

感謝。私は実際にわずか5分前に考え出した。私が長さ1のために8000を得た理由は、収縮エンコーディングのすべてが静的なハフマンエンコーディングと同様に最下位ビットから始まると考えていたからです。 – Jimmy

関連する問題