Zstd 轉 GZIP 轉換器
當備份公用程式、套件管理程式或伺服器接受 GZIP 卻無法讀取 Zstandard 時,請將 .zst 轉換為 .gz。未壓縮的資料會被保留,但壓縮後的大小可能會改變。
格式比較與技術規格
| 規格 | ZSTD | GZIP |
|---|---|---|
| MIME 類型 | application/ | application/ |
| 類型 | 即時串流壓縮 | DEFLATE 串流容器 |
| 壓縮 | 有限狀態熵(FSE) + 霍夫曼編碼 | DEFLATE (RFC 1951) |
| 標準規格 | IETF RFC 8878 | IETF RFC 1952 |
| 檔案簽章(magic bytes)標頭 | 28 B5 2F FD (Zstandard frame magic number) | 1F 8B (gzip ID1/ID2) |
格式概述與應用
Zstandard 常用於備份與軟體套件中,因為編碼器可以權衡壓縮率與速度。對於工具與網頁伺服器而言,GZIP 仍然是常見的交換格式。當接收工具僅接受 GZIP 時,請將 .zst 檔案轉換為 .gz;如果儲存空間很重要,請比較檔案大小,因為結果取決於資料與編碼器設定。
技術規格與編解碼器解析
Zstandard 串流(MIME 類型 application/zstd)以小端序格式的 4 位元組檔案簽章(magic bytes)0x2FD27AB5 開始。它使用有限狀態熵(Finite State Entropy)與霍夫曼編碼(Huffman coding)來快速壓縮資料串流。相對地,GZIP 串流(MIME 類型 application/gzip)使用 DEFLATE 演算法,該演算法結合了 LZ77 滑動字典與霍夫曼編碼。GZIP 容器以 2 位元組檔案簽章(magic bytes)0x1F8B 開始,接著是壓縮旗標、修改時間戳記,以及在壓縮酬載之前的選用原始檔名。
作業系統與瀏覽器相容性
GZIP 受到許多封存公用程式與網頁伺服器的支援。Zstandard 則在日益增多的軟體中提供,但支援情形取決於作業系統、瀏覽器、應用程式與版本;當接收工具缺乏 Zstandard 支援時,轉換可能會有所幫助。
實用資訊
請記住,從 Zstandard 轉換為 GZIP 是一個解壓縮與重新壓縮的過程。由於 Zstandard 與 GZIP 使用不同的演算法,產生的檔案大小可能會增加,且轉換過程會消耗 CPU 資源。
常見問題
如何將 Zstandard 串流轉換為 GZIP 串流而不會降低品質?
這兩種格式都使用無損壓縮演算法。這表示轉換過程完整保留了原始未壓縮資料的每一個位元。該過程首先將 Zstandard 串流解碼回其確切的原始狀態,然後使用 GZIP DEFLATE 演算法壓縮該原始資料,且不會捨棄任何資訊。
Zstandard 串流與 GZIP 串流有什麼區別?
Zstandard 與 GZIP 使用不同的壓縮演算法,因此無法直接將一種串流重新標示為另一種串流。轉換器必須對資料進行解壓縮與重新壓縮;輸出大小和處理時間會隨著輸入與壓縮層級而有所不同。