gzip と deflate†[edit]
- gzip はアルゴリズムに deflate を使用しているが,データとしての構造は一致しない(場合がある)
- deflate = deflate header + データ
- deflate herder: 0x78 0xda の2Byte固定
- gzip = gzip header + データ + gzip tailer
- gzip header, tailer の構造の詳細については 上記RFCを参照
- 最も単純な gzip header = 0x1f 0x8b 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0xff
- 最も単純かつ不正な gzip tailer = 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
deflate から gzip へのデータ変換†[edit]
- deflate から gzip のデータ構造に変換するには,deflate の先頭2Byte(0x78 0xda) を取り除いて,gzip の header と tailer を付加する.
- しかしながら,gzip の tailer は CRC と 伸長(解凍)後のデータ長であるので,deflate のデータから計算するのは,困難.
- tailer を適当に 0x00 0x00 0x00 0x00 0x00 0x00 0x00 x00 とすると.gunzip ではデータエラーを起して解凍できない.
- zcat でもエラーは表示するが,一応解凍は可能.