zodream梦想开源/个人编程日记

zodream梦想开源/个人编程日记

简单的个人编程日记

马上订阅 zodream梦想开源/个人编程日记 RSS 更新: https://zodream.cn/blog/rss

c# Gzip解码无头内容

2022年4月6日 18:43
编程技术

依赖

使用NuGet安装

SharpZipLib

主要代码

using ICSharpCode.SharpZipLib.Zip.Compression;


byte[] data; // 要解码内容
using var outputStream = new MemoryStream();
var inflater = new Inflater();
try
{
    inflater.SetInput(data);
    var buffer = new byte[2048];
    while (!inflater.IsFinished)
    {
        var count = inflater.Inflate(buffer);
        outputStream.Write(buffer, 0, count);
    }
}
catch (Exception)
{
    inflater.Reset();
}
byte[] res = outputStream.ToArray(); //解码结果

与 php gzuncompress 比较

gzuncompress 主要是不必考虑有无gzip头,都能进行解码

SharpZipLib 中默认的解码方法 GZipInputStream 并不支持无头内容,