无需登录 数据私有 本地保存

LZ-String 压缩演示 - 前端友好的字符串压缩

19
0
0
0

LZ-String 压缩演示

前端友好的字符串压缩工具 · 支持多种输出格式 · 实时对比压缩率

字符数: 0 UTF-8字节: 0
加载中...

正在加载 LZ-String 库...

压缩结果对比
共4种格式

输入文本后点击"执行压缩"查看结果

常见问题与知识点
什么是 LZ-String?它和 gzip 有什么不同?

LZ-String 是一个纯 JavaScript 实现的字符串压缩库,基于 LZ77/LZ78 算法的变体,专为前端浏览器环境设计。与 gzip 不同,LZ-String 压缩后的输出是字符串(而非二进制流),可以直接在 JavaScript 中处理、存储在 localStorage 或通过 URL 参数传递。gzip 需要服务端支持且输出为二进制,而 LZ-String 更适合纯前端场景。

LZ-String 支持哪些压缩输出格式?各有什么适用场景?

UTF-16(compress):压缩率最高,输出为 UTF-16 字符串,可能包含不可打印字符,适合内存中存储或 JS 内部传输。
Base64(compressToBase64):输出为标准 Base64 字符串,可安全存储和传输,适合存入数据库或 JSON。
EncodedURIComponent:输出为 URI 安全字符串,可直接作为 URL 参数传递,适合 GET 请求或路由参数。
Uint8Array:输出为字节数组,压缩率最优,适合二进制处理、WebSocket 传输或 Blob 构造。

LZ-String 的压缩率大概是多少?什么时候压缩效果最好?

LZ-String 对重复内容多的文本压缩效果最佳(如 JSON 数据、重复模板、日志文本),压缩率可达 60%-90%。对于短文本(<100字符)或高随机性内容(如已加密数据),压缩后可能反而变大(负压缩率)。通常建议原始文本大于 200 字节时再考虑使用 LZ-String 压缩。

如何在浏览器项目中使用 LZ-String?

通过 npm 安装:npm install lz-string,然后 import 使用。也可通过 CDN 直接引入:
<script src="https://cdn.jsdelivr.net/npm/lz-string@1.5.0/libs/lz-string.min.js"></script>
引入后全局可用 LZString.compress() 等方法。压缩后的字符串可存入 localStorage 以减少存储空间占用。

压缩后的数据如何安全存储和还原?

推荐使用 Base64 格式(compressToBase64)进行持久化存储,因为 Base64 字符串只包含可打印 ASCII 字符,兼容所有存储系统。还原时使用对应的 decompressFromBase64() 方法。如果通过 URL 传递,使用 EncodedURIComponent 格式最安全,避免特殊字符导致的问题。

LZ-String 压缩是确定性的吗?同样的输入是否总是产生相同输出?

是的,LZ-String 的压缩算法是完全确定性的。相同的输入字符串在任何平台、任何浏览器上都会产生完全相同的压缩输出。这使得它非常适合用于数据校验、缓存键生成等场景。