2016-09-04 3 views
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입니다.Gzip은 압축되지 않은 데이터 형식을 압축합니다.

Linux 시스템에서 압축을 풀려고 할 때 "gzip : xxx.gz : 예기치 않은 파일 끝"오류가 발생했습니다.

3.2.4에서 언급 한 압축되지 않은 데이터 블록의 압축 형식을 따랐다 고 생각합니다. 10 바이트 GZIP 헤더 후

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

CRC 및 크기가 계속됩니다.

gzip 파일에 아무 것도 잘못 표시되거나 누락 될 수 있습니까? 고마워.

답변

1

8000 1. 0100 길이 1 (흥미롭게도, 제대로 01 00 00 00과 끝에 총 압축 길이를 나타낼 수 있었다.)

는 또한 a 16 진수 61하지 86입니다 것없는, 길이 128 .

그래서 올바른 스트림은 다음과 같습니다 회신 박사 애들러에 대한

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

관련 문제