實用工具

Gzip線上編碼/解碼

原始文字經 Gzip 壓縮後編碼為 Base64 文字;解碼方向接收 Base64(自動識別 URL-safe)還原文字。支援 .gz 檔案直接下載與上傳,即時顯示真實壓縮率。全部在你的瀏覽器本機處理,內容不上傳。

🔒 隱私說明:壓縮與解壓全部在你的瀏覽器本機完成(基於標準 CompressionStream API),輸入內容與結果不會上傳到伺服器,頁面重新整理即清空。

使用說明

  1. Gzip編碼:輸入任意文字,得到 Gzip 壓縮資料的 Base64 表示,可直接貼到 URL、JSON 或設定檔中傳輸。
  2. Gzip解碼:貼上 Base64 格式的 Gzip 資料(標準或 URL-safe 均可,自動識別),還原為原始文字。
  3. .gz 檔案:點擊「下載 .gz 檔案」把輸入文字直接儲存為 Gzip 檔案;點擊「上傳 .gz 檔案」選擇本機 .gz 檔案解壓為文字。
  4. 壓縮率統計會顯示真實結果——注意:非常短的文字或本身已壓縮的資料(JPEG/PNG/MP4/ZIP)可能越壓越大,這是 Gzip 檔頭與壓縮演算法的正常開銷,並非工具錯誤。

常見問題

什麼是 Gzip?

Gzip(GNU zip)是一種基於 DEFLATE 演算法的無損壓縮格式(RFC 1952),檔頭固定為 1F 8B,自帶 CRC32 校驗與原始長度欄位。它是 HTTP 回應壓縮最常用的格式,也常用於日誌、JSON 等文字資料的傳輸與歸檔。

為什麼短文字壓縮後反而變大?

Gzip 檔案有固定的檔頭(魔數、標誌位、時間戳等約 10 位元組)和尾部(CRC32 校驗 4 位元組 + 原始長度 4 位元組),加上 DEFLATE 對無重複內容幾乎沒有壓縮空間。例如 18 位元組的「测试abc123你好」壓縮後是 39 位元組。這是格式開銷,不是錯誤;有重複內容的長文字才能體現壓縮收益。

URL-safe Base64 和標準 Base64 有什麼區別?

標準 Base64 用 + 和 / 兩個字元,放進 URL 或檔名時需要再編碼。URL-safe 版本用 - 和 _ 替代它們並通常省略結尾的 =。本工具解碼時自動識別兩種格式並規範化,輸出時可勾選產生 URL-safe 版本。

解碼時報「缺少 1F 8B 檔頭」是什麼意思?

合法的 Gzip 資料前兩個位元組固定是 0x1F 0x8B。如果 Base64 能正常解碼但開頭不是這兩個位元組,說明這段資料不是 Gzip(可能是普通 Base64 文字、其他壓縮格式的 Base64,或資料被截斷/改寫)。請確認來源資料確實是 Gzip 的 Base64。

我的資料會上傳到伺服器嗎?

不會。本工具使用瀏覽器標準的 CompressionStream / DecompressionStream API,全部計算在本機完成;輸入文字、Base64 結果和上傳的 .gz 檔案都不會離開你的裝置,頁面重新整理即清空。

不同工具得到的 Base64 結果不一樣,是出錯了嗎?

不是。Gzip 頭部包含時間戳(MTIME)、壓縮器標識(XFL/OS)等元資料,不同實作會填入不同值,因此同一文字的 Gzip 位元組可能不同、Base64 隨之不同——但解壓後都能得到完全相同的原文。驗證正確性的標準是「解碼後與原文一致」,而不是位元組級一致。

Gzip、Deflate、Brotli 有什麼區別?

Deflate 是壓縮演算法本身;Gzip = DEFLATE + 帶 CRC32 校驗的容器格式(RFC 1952),是 HTTP 壓縮和 .gz 檔案的標準;Brotli 是更新的演算法,壓縮率通常更高但瀏覽器支援與生態工具鏈不同。HTTP Content-Encoding 裡三者分別對應 gzip / deflate / br。