Gzip·Zlib·Deflate 풀기·압축
H4sI로 시작하면 gzip, eJ로 시작하면 zlib를 Base64로 바꾼 거예요. 붙여 넣으면 형식을 알아서 판별해요.
문자열 속 압축 데이터 풀기
웹 서비스와 프로그램은 데이터를 줄이려고 deflate 압축을 자주 써요. 같은 deflate 데이터라도 앞뒤에 붙는 머리가 달라서 세 가지 형식이 있어요. gzip(RFC 1952)은 1F 8B로 시작하고 파일 이름·CRC32 같은 정보가 붙어 .gz 파일과 HTTP 압축에 쓰여요. zlib(RFC 1950)은 보통 78 9C·78 01·78 DA로 시작하고 끝에 Adler-32 검사값이 붙어 PNG 내부, PDF 스트림, 게임 저장 파일에 많아요. raw deflate(RFC 1951)는 머리 없이 압축 데이터만 있어 ZIP 안의 파일이나 일부 웹 API에서 써요.
자동 판별 방법
입력이 16진수 글자로만 되어 있으면 16진수로, 아니면 Base64(URL-safe Base64 포함)로 읽어요. 그다음 첫 두 바이트가 1F 8B면 gzip, 첫 바이트의 아래 4비트가 8(deflate)이고 첫 두 바이트를 16비트 수로 봤을 때 31로 나누어떨어지면 zlib, 둘 다 아니면 raw deflate로 풀어요. Base64로 바꾼 gzip은 거의 항상 ‘H4sI’로, zlib는 ‘eJ’나 ‘eN’으로 시작해서 눈으로도 구별할 수 있어요. 판별이 틀리면 ‘압축 형식’을 직접 고르세요.
풀기와 압축하기
풀기는 브라우저에 내장된 DecompressionStream으로 하고, 데이터 끝에 군더더기 바이트가 붙었거나 조금 잘린 경우에는 pako(MIT)로 한 번 더 시도해요. 풀린 내용이 UTF-8 글자면 글자로, 아니면 16진수로 보여 주고 파일로 저장할 수 있어요. 압축하기 탭에서는 글자를 UTF-8로 바꿔 세 형식 중 하나로 압축하고 Base64나 16진수로 돌려줘요. 브라우저 내장 압축기를 써서 같은 글이라도 다른 프로그램(예: 파이썬 zlib 기본 수준)과 바이트가 조금 다를 수 있지만, 어느 쪽으로든 풀면 같은 글이 나와요.
참고
여러 파일이 묶인 .tar.gz나 ZIP 파일 전체를 풀려면 ‘7z·RAR·TAR·GZ 압축 풀기’ 도구가 더 편해요. 이 페이지는 붙여 넣은 문자열이나 단일 압축 스트림을 빠르게 확인하는 용도예요. bzip2·xz·zstd 형식은 지원하지 않아요. 데이터는 이 기기 밖으로 나가지 않아요.
참고한 자료
자주 묻는 질문
‘풀 수 없어요’라고 나와요.
압축 데이터가 아니거나, 앞에 다른 바이트가 붙어 있을 수 있어요. 헥스 뷰어로 1F 8B나 78 9C가 어디서 시작하는지 찾아 그 뒤부터 넣어 보세요.
압축하기 결과가 원래보다 커요.
gzip은 머리·꼬리에 18바이트를 붙여서 아주 짧은 글은 오히려 커져요. 글이 길고 반복될수록 많이 줄어요.
풀린 내용이 깨진 글자로 보여요.
원래 데이터가 EUC-KR 같은 다른 인코딩일 수 있어요. 파일로 저장해 ‘문자 인코딩 변환기’에서 열어 보세요.
함께 쓰면 좋은 도구
- Base64 인코딩·디코딩 (글자·파일 ↔ Base64)글자(한글 UTF-8)를 Base64로, Base64를 글자로, 파일·이미지를 data URI로, Base64를 파일로 저장
- 파일 속 숨은 파일 찾기 (카빙·엔트로피 그래프)이미지·펌웨어·문서 안에 붙어 있는 PNG·JPG·ZIP·PDF·GZIP 같은 파일을 서명으로 찾아 꺼내고, 바이트 무작위성(엔트로피) 그래프로 압축·암호화 구간 보기
- 7z·RAR·TAR·GZ 압축 풀기 (설치 없이 온라인)7z, RAR(RAR4·RAR5), TAR, TAR.GZ·TGZ, GZ 파일 안의 목록을 보고 필요한 파일만 꺼내기
- 헥스 뷰어 (파일 16진수 보기·검색, 헥스를 파일로)파일의 바이트를 16진수와 글자로 나란히 보고, 위치 이동·바이트 검색·파일 형식 확인, 16진수 글자를 파일로 저장
- GZ 압축·풀기 (파일 하나를 gzip으로 줄이고 되돌리기)파일 하나를 .gz(gzip)로 압축하거나, .gz 파일을 원래 파일로 풀기 — 여러 개를 한 번에
- JSON 정리 (보기 좋게 들여쓰기·검증·압축)JSON을 보기 좋게 들여쓰기, 오류 위치 표시, 한 줄 압축, 키 정렬, 문자열 이스케이프