【发布时间】:2018-09-24 11:56:35
【问题描述】:
如何在 Python 3 中解压缩已用 gzip 压缩并转换为 base 64 的文本字符串?
例如文字:
EgAAAB+LCAAAAAAABAALycgsVgCi4vzcVAWFktSKEgC9n1/fEgAAAA==
应该转换为:
这是一些文字
以下C# 代码成功地做到了这一点:
var gzBuffer = Convert.FromBase64String(compressedText);
using (var ms = new MemoryStream()) {
int msgLength = BitConverter.ToInt32(gzBuffer, 0);
ms.Write(gzBuffer, 4, gzBuffer.Length - 4);
var buffer = new byte[msgLength];
ms.Position = 0;
using (var zip = new GZipStream(ms, CompressionMode.Decompress)) {
zip.Read(buffer, 0, buffer.Length);
}
return Encoding.UTF8.GetString(buffer);
}
【问题讨论】:
-
谢谢。每当我使用 base64 然后 zlib.decompress 解压缩数据时出现错误 -3:不正确的标头检查
-
对module-base64 和module-gzip 感兴趣
标签: python python-3.x gzip compression gzipstream