代码如下(其中ms为压缩后的流):
ms.Position = 0;
GZipStream zipstream = new GZipStream(ms, CompressionMode.Decompress);
StreamReader sr = new StreamReader(zipstream);
string str = sr.ReadToEnd();str的长度是正确的,可内容却都是"\0",正确的结果应该是个xml字符串,请高手指点,谢谢!
ms.Position = 0;
GZipStream zipstream = new GZipStream(ms, CompressionMode.Decompress);
StreamReader sr = new StreamReader(zipstream);
string str = sr.ReadToEnd();str的长度是正确的,可内容却都是"\0",正确的结果应该是个xml字符串,请高手指点,谢谢!
解决方案 »
- 函数中在while中引用自己为什么会有死循环呢?
- treeview 设置image,我用ImageLIst ,选中的时候总是显示同一张 图片。
- sql动态行列导致问题,请各位大侠帮忙解决下,先谢谢了!
- 关于窗口组织的简单问题
- 哪位大侠有用 VS.net(C#)中.Net Remoting做的客户端、服务器处理的例子。
- 请问:在子界面窗口使用线程,出现ThreadAbortException的问题
- datagridview 取第0行行号的问题
- 烦请将java代码转成C#代码
- c#中为什么加入控件就不能运行 多多指点
- vs 2019 wpf的设计页面无法使用
- C++ char strClientIP[6][16],C#以托管方式怎么定义呢?
- c#解压缩问题。。。愚翁请进
/// 解压缩字符串
/// </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();
}
http://blog.csdn.net/BlueDog/archive/2006/12/29/1466527.aspx