用gzencode在PHP中然后在c sharp中使用gunzip导致大量的空格

时间:2015-02-12 13:47:07

标签: c# gzip compression

我将大量的XML从PHP传递给C Sharp,因此选择了gzip。但是,C Sharp中生成的未压缩字符串最后会有大量的空白

PHP方面

echo base64_encode(gzencode($settings,9));

C锋利的一面

    private static string _gzipDecompress(string compressedText)
    {

        byte[] gZipBuffer = Convert.FromBase64String(compressedText);
        using (var memoryStream = new MemoryStream())
        {
            int dataLength = BitConverter.ToInt32(gZipBuffer, 0);
            memoryStream.Write(gZipBuffer, 0, gZipBuffer.Length);

            var buffer = new byte[dataLength];

            memoryStream.Position = 0;
            using (var gZipStream = new GZipStream(memoryStream, CompressionMode.Decompress))
            {
                gZipStream.Read(buffer, 0, buffer.Length);
            }

            return Encoding.UTF8.GetString(buffer);
        }
    }

解压缩工作正常,但生成的字符串长度为559903(string.Length),因为字符串末尾有大量的空格,实际上应该是6629。

我在这里缺少什么?

0 个答案:

没有答案