📦 压缩

文件模式适合压缩体积较大的内容,文本模式方便直接粘贴。

🗜️

输入内容后点「开始压缩」。

📊 三种格式怎么选

格式说明常见用途
gzip带 gzip 头与 CRC32 校验,最通用HTTP 传输、.gz 文件、日志归档
deflatezlib 封装(带头与 Adler32)PDF 流、PNG 内部数据、部分协议
deflate-raw纯压缩数据,无封装头需要自己处理封装的底层场景

⚠️ 说明:本工具使用浏览器原生的 CompressionStream / DecompressionStream 完成压缩解压,全程在你的浏览器本地完成,文件与文本不会上传到任何服务器。
它只处理数据流本身,不负责打包:如果你想把多个文件打成 .gz 或 .zip 压缩包,需要先做打包(tar / zip)再压缩,本工具不提供打包功能。
超大文件(数百 MB)可能在浏览器内占用较多内存,建议分批处理。

🗜️

在线 Gzip 压缩解压

开发工具 完全免费 🌙 支持黑夜模式 🔒 本地处理,不上传 📦 三种格式 📊 压缩率显示

后端同学发来一段 gzip 过的 Base64 要你解开看看,或者你想知道一段 JSON 压完到底能省多少流量——以前要么开终端敲命令,要么找个不知名的在线站把数据传上去。
现在的浏览器自带压缩能力:CompressionStream 一行就能压,不用引任何库,数据也不用离开你的电脑。
能做什么:
① 压缩:粘贴文本或选文件,输出 Base64 或直接下载 .gz;
② 解压:上传 .gz 或粘贴 Base64,解回原文;
③ 三种格式:gzip / deflate / deflate-raw;
④ 压缩率:原始大小、压缩后大小、省了多少百分比、耗时多久。
典型场景:
· 解一段后端返回的 Content-Encoding: gzip 数据;
· 把大 JSON 压成 Base64 塞进 URL 或配置文件;
· 估算开启 gzip 后接口能省多少流量;
· 解压别人发来的 .gz 日志。
一个要分清的概念:gzip 只压缩「一段数据」,不打包「多个文件」。想把一堆文件变成一个压缩包,得先 tar 或 zip 打包,再 gzip 压缩——本工具只做后半段。

类别开发工具
技术CompressionStream / DecompressionStream
格式gzip / deflate / deflate-raw
数据本地处理,不上传

核心特性

压缩与解压双向
三种格式支持
文本 / 文件双输入
Base64 输出
压缩率与耗时
一键下载 .gz
零依赖不上传
流式处理

关于这个工具

怎么实现:
① 能力检测:先看 `typeof CompressionStream !== 'undefined'`,不支持的浏览器(较旧的 Safari / Firefox)直接给出明确提示,不静默失败;
② 压缩:把输入做成 `Blob` → `blob.stream().pipeThrough(new CompressionStream(fmt))` → `new Response(stream).blob()` 拿到结果;全程流式,不会把整份数据一次性摊在内存里;
③ Base64:结果 Blob 转 `Uint8Array`,分块拼接成二进制字符串再 `btoa`,避免 `String.fromCharCode` 一次吃太大导致爆栈;
④ 解压:反向走 `DecompressionStream`,结果按 UTF-8 `TextDecoder` 解成文本;
⑤ 统计:用 `performance.now()` 记耗时,用字节数算压缩率 `1 - after / before`。
它不做:不打包多文件、不生成 tar/zip、不设置压缩级别(浏览器 API 未开放)、不校验 CRC 之外的完整性。

怎么用

  1. 第 1 步
    切到「📦 压缩」或「📤 解压」标签。
  2. 第 2 步
    压缩:粘贴文本或选文件 → 选格式 → 点「🗜️ 开始压缩」。
  3. 第 3 步
    看压缩率,复制 Base64 或下载 .gz 文件。
  4. 第 4 步
    解压:上传 .gz 或粘贴 Base64 → 点「📂 开始解压」。
  5. 第 5 步
    解压失败时先确认格式有没有选对(gzip 和 deflate 不通用)。

更新记录

  • v1.0 2026-09-21 工具正式上线:基于浏览器原生 CompressionStream / DecompressionStream 实现压缩解压双向处理,支持 gzip / deflate / deflate-raw 三种格式、文本与文件双输入、Base64 输出与复制、.gz 文件下载、压缩率与耗时统计;含 API 能力检测,不支持时给出明确提示。数据全程本地流式处理不上传,适配黑夜模式。

常见问题

提示「浏览器不支持」怎么办?
`CompressionStream` 需要较新的浏览器:Chrome 80+、Edge 80+、Safari 16.4+、Firefox 113+。
如果你看到不支持提示,可以:
① 升级浏览器到最新版;
② 换用 Chrome / Edge;
③ 本地用命令行代替:`gzip -c file > file.gz` 压缩,`gunzip file.gz` 解压。
本工具不会在不支持的环境里静默失败——一定会明确告诉你原因。
解压失败 / 结果乱码是怎么回事?
最常见的原因是格式选错了:
· `gzip` 和 `deflate` 不是一回事,数据头不一样,互相解不开;
· 不确定就三种格式都试一遍。
其他可能:
· Base64 复制时被截断了(检查一下首尾);
· 文件本身已损坏;
· 压缩内容是二进制(如图片),强行当文本显示就会乱码——这时请用「下载文件」而不是看文本框。
能把多个文件打成一个 .gz 吗?
不能。这是最容易误解的一点:gzip 只压缩数据流,不负责打包多个文件。
单个文件 → .gz,这是它唯一能做的事。多个文件要变成一份归档,得先用 tar 打包(得到 .tar)再 gzip(得到 .tar.gz),或者直接用 zip(zip 本身自带打包 + 压缩)。
本工具处理不了打包,建议用系统自带的压缩软件。
压缩率一般能到多少?
取决于内容重复度:
· JSON / 日志 / HTML / 代码:重复片段多,通常能压到原来的 10%~25%(省 75%+);
· 普通中文文章:大约压到 35%~50%;
· 图片 / 视频 / 已压缩文件:几乎压不动,甚至可能略微变大——因为它们本身已经是压缩过的。
工具会实时告诉你实际压缩率,试一下就知道。
数据会上传吗?大文件会不会卡?
不上传。压缩解压全在你的浏览器本地完成,没有任何网络请求。
关于性能:实现上用的是流式处理(Stream),不会一次性把整份数据读进内存,普通几十 MB 的文件没问题。
但浏览器本身有内存上限,数百 MB 以上的文件可能会卡或失败,这种情况建议还是用命令行工具。

💬 留言板 0

全部留言需审核通过后展示
💬

还没有留言,来抢沙发吧!

✍️ 说点什么
0 / 500
图形验证码