实用工具
Gzip在线编码/解码
原始文本经 Gzip 压缩后编码为 Base64 文本;解码方向接收 Base64(自动识别 URL-safe)还原文本。支持 .gz 文件直接下载与上传,实时显示真实压缩率。全部在你的浏览器本地处理,内容不上传。
🔒 隐私说明:压缩与解压全部在你的浏览器本地完成(基于标准 CompressionStream API),输入内容与结果不会上传到服务器,页面刷新即清空。
使用说明
- Gzip编码:输入任意文本,得到 Gzip 压缩数据的 Base64 表示,可直接粘贴到 URL、JSON 或配置文件中传输。
- Gzip解码:粘贴 Base64 格式的 Gzip 数据(标准或 URL-safe 均可,自动识别),还原为原始文本。
- .gz 文件:点击"下载 .gz 文件"把输入文本直接保存为 Gzip 文件;点击"上传 .gz 文件"选择本地 .gz 文件解压为文本。
- 压缩率统计会显示真实结果——注意:非常短的文本或本身已压缩的数据(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。
相关工具