You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将字符串经gzip压缩后得到字符串格式的输出?

解决Python Gzip压缩后转字符串的问题

gzip压缩生成的是二进制字节流,这类数据并非合法的UTF-8编码内容(比如开头的0x8b是gzip的固定标识字节,不符合UTF-8编码规则),所以直接用utf-8解码必然抛出UnicodeDecodeError。

要得到类似目标网站的字符串格式输出,你需要用Base64编码把二进制压缩结果转换成可打印的纯文本字符串——这也是这类在线工具的通用实现方式。

实现代码

压缩为字符串

import gzip
import base64

def gzip_to_string(text):
    # 1. 将原始字符串转为UTF-8字节
    text_bytes = text.encode("utf-8")
    # 2. 执行gzip压缩
    compressed_bytes = gzip.compress(text_bytes)
    # 3. 用Base64编码为字符串
    return base64.b64encode(compressed_bytes).decode("utf-8")

# 测试示例
test_text = "这是一段用于测试Gzip压缩的文本内容"
compressed_str = gzip_to_string(test_text)
print(compressed_str)

从字符串还原原始内容

如果需要反向解压缩,对应代码如下:

def string_to_gzip(compressed_str):
    # 1. 解码Base64得到压缩字节
    compressed_bytes = base64.b64decode(compressed_str)
    # 2. 执行gzip解压缩
    decompressed_bytes = gzip.decompress(compressed_bytes)
    # 3. 转为原始字符串
    return decompressed_bytes.decode("utf-8")

# 测试还原
restored_text = string_to_gzip(compressed_str)
print(restored_text)

Base64编码后的字符串完全由可打印ASCII字符组成,和你提到的在线工具输出格式一致,既可以安全存储也能方便传输。

内容的提问来源于stack exchange,提问作者White_145

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 00:36:27