c#deflatestream返回大量空字符

时间:2013-03-10 13:35:24

标签: c# deflatestream

我正在尝试使用DeflateStream来扩充来自Web服务器的数据。但由于某种原因,我的函数返回的字节数组包含几个空字符而不是它们应该是什么。 例如(space表示空字符)

       ge       603-595568599                     _web           :   msg  

我不确定我做错了什么。这是我的解压缩功能:

using (FileStream inFile = new FileStream(filename, FileMode.Open, FileAccess.Read))
{
    using (DeflateStream Decompress = new DeflateStream(inFile, CompressionMode.Decompress, true))
    {
        //Decompress.Flush();
        using (StreamReader reader = new StreamReader(Decompress))
        {
            byte[] temp = Encoding.UTF8.GetBytes(reader.ReadToEnd());
            for (int i = 0; i < temp.Length; i++)
            {
                if (temp[i] < 10) temp[i] = 0x20;
            }
            r0 = Encoding.UTF8.GetString(temp);
        }
    }
}

我做错了吗?会是什么/可能是什么原因?

ETA: 使用msdn文章中的示例代码生成相同的结果

using (FileStream inFile = new FileStream(filename, FileMode.Open, FileAccess.Read))
{
    using (FileStream decompressedFileStream = File.Create("packet.txt"))
    {

        using (DeflateStream decompressionStream = new DeflateStream(inFile, CompressionMode.Decompress))
        {
            decompressionStream.CopyTo(decompressedFileStream);
            r3=string.Format("Decompressed: {0}", "packet");
        }
    }
}

这里是一个示例数据

42 58 51 8C 6E 85 51 BC 31 40 04 ED 28 48 2C 06 A8 B8 3C BF 28 C5 AE 5A 2D B1 20 BF D8 3A 1B 42 59 41 28 33 43 33 03 03 13 D3 78 13 23 0B 73 53 CB A4 B4 34 D3 B4 34 03 0B 53 0B 93 B4 A4 34 8B A4 24 E3 14 D3 54 43 73 13 B3 54 23 4B 83 24 D3 E4 34 13 88 AE 5A 1B 7D B8 B1 B8 3D 51 94 5A 9C 5F 5A 94 9C 6A 57 91 99 96 66 A3 0F E7 A2 F8 0E 00 00 00 FF FF

0 个答案:

没有答案