壓縮工作流程
Gzip、Zlib 與 Raw DEFLATE:容器、位元組與本機預覽界線
DEFLATE 是壓縮演算法;Gzip 與 Zlib 用不同容器封裝它。請依來源協定選格式,不只看副檔名,也不要靠一次解碼成功猜測。
內容更新: · 維護者與修正回報
三種格式,明確選擇
Gzip 使用 RFC 1952 標頭及 CRC32/大小尾端資訊;Zlib 使用 RFC 1950 封裝與 Adler-32;Raw DEFLATE 則是 RFC 1951 串流,沒有容器校驗。原生格式名稱為 gzip、deflate(Zlib 封裝)與 deflate-raw。Raw 較小,不代表可替代其他格式或一定最好。
Gzip 格式本身允許串接多個 member,但 Compression Streams 標準只接受一個 member;原生 Zlib 解碼器不支援 preset dictionary。錯誤容器、截斷、校驗失敗及尾端額外位元組可能被拒絕;錯誤訊息不能可靠指出哪個校驗值或位移損壞。此工具不會自動重試其他容器。
Base64 是傳輸編碼,不是壓縮
標準 Base64 把二進位位元組表示成文字,通常會增加大小。先將 Base64 解成壓縮位元組,再依已知容器解壓。此工具要求正確 padding 與 pad bits,不修復 Base64URL、data URL 或損壞輸入;Hex 同樣會增加大小,必須是完整位元組對。
大小摘要比較壓縮位元組與原始位元組,不包含 Base64/Hex 的文字負擔。小型輸入可能因容器與演算法負擔而變大;原始資料為空時,節省百分比沒有意義。不同瀏覽器或版本可能產生不同壓縮位元組;請比較解壓後的位元組,不假設壓縮輸出永遠一致。
檔案保留位元組,預覽才轉文字
本機檔案保留 BOM、換行、NUL 與任意二進位資料。貼上文字直接編成 UTF-8、不正規化,但 textarea 或剪貼簿可能正規化換行;要精確往返位元組請選檔。不成對的 Unicode surrogate 會拒絕。輸出不是有效 UTF-8 時,二進位解壓仍可成功;請改看 Hex/Base64 或下載完整位元組,不以替代字元覆寫。
ZIP 是不同的封存格式;.tar.gz 解壓後得到 TAR 位元組,此工具不解開其中檔案。輸出採固定安全檔名,不信任 Gzip 內嵌名稱;工具不渲染或執行下載內容中的 HTML、SVG 或腳本,下載內容仍須自行判斷可信度。
HTTP 解碼是另一層處理
Content-Encoding 描述 HTTP 內容編碼;Content-Disposition 描述下載呈現方式與建議檔名。瀏覽器 Fetch 通常先解開 HTTP Content-Encoding,再提供回應位元組;不要只因標頭寫 gzip,就再次解壓已解碼資料。
此離線工具不抓網址、不查正式伺服器,也不能證明正式環境已啟用壓縮。請另查實際回應及接收端 runtime;解壓成功、CRC32 或 Adler-32 都不能提供身分驗證、加密或內容安全證書。
本機處理不代表資源無上限
工具資料只留在頁面/Worker 記憶體,不上傳、不儲存、不放網址或工具分析事件。貼上原文限 1 MiB、本機檔案限 5 MiB、輸出限 16 MiB;Worker 5 秒逾時並可取消。輸出逐區塊計大小,再組合完整結果;失敗或取消會丟棄所有結果,修改輸入也會讓舊匯出失效。
預覽最多 32,000 字元;完整 Base64/Hex 編碼不超過 1 MiB 字元才能複製,超過請下載二進位。資源上限降低解壓炸彈風險,但無法保證原生解碼器的記憶體峰值。各瀏覽器/版本的格式支援不同,而且 Worker 必須支援;不會改為上傳。Brotli、Zstd、dictionary 與多 member Gzip 不在此工具支援範圍。
UTF-8 文字 → Gzip 位元組 → 標準 Base64
標準 Base64 → Gzip 位元組 → 原始位元組
.tar.gz → 解開 Gzip → TAR 位元組(不是已解開的檔案)
小型資料可能變大;Raw DEFLATE 沒有容器校驗。資料可信度