代码如下(其中ms为压缩后的流):
ms.Position = 0;
GZipStream zipstream = new GZipStream(ms, CompressionMode.Decompress);
StreamReader sr = new StreamReader(zipstream);
string str = sr.ReadToEnd();str的长度是正确的,可内容却都是"\0",正确的结果应该是个xml字符串,请高手指点,谢谢!

解决方案 »

  1.   

    /// <summary>
            /// 解压缩字符串
            /// </summary>
            /// <param name="unCompressedString"></param>
            /// <returns></returns>
            public static string UnzipString(string unCompressedString)
            {
                System.Text.StringBuilder uncompressedString = new System.Text.StringBuilder();
                byte[] writeData = new byte[4096];            byte[] bytData = System.Convert.FromBase64String(unCompressedString);
                int totalLength = 0;
                int size = 0;            Stream s = new GZipStream(new MemoryStream(bytData), CompressionMode.Decompress);
                while (true)
                {
                    size = s.Read(writeData, 0, writeData.Length);
                    if (size > 0)
                    {
                        totalLength += size;
                        uncompressedString.Append(System.Text.Encoding.UTF8.GetString(writeData, 0, size));
                    }
                    else
                    {
                        break;
                    }
                }
                s.Close();
                return uncompressedString.ToString();
            }
      

  2.   

    你好,可以加我qq吗? 275222920 我想讨论一下gzip的问题^_^
      

  3.   

    看我Blog上的贴子,已实现了你需要的功能
    http://blog.csdn.net/BlueDog/archive/2006/12/29/1466527.aspx