【发布时间】:2016-06-27 04:48:52
【问题描述】:
一个数据库有一个包含 XML 数据的列和一个包含 Base64 编码的 zip 文件的 CDATA 部分。使用 XmlReader,我能够从 CDATA 部分获取一个字符串,但是在使用代码解码和解压缩字符串之后,我从解压缩的数据中得到了 null。请帮忙
case XmlNodeType.CDATA:
string base64EncodedData = xreader.Value;
var base64EncodedBytes = Convert.FromBase64String(base64EncodedData);//convert to bytes
string decoded = Unzip(base64EncodedBytes);
writer.WriteString("decoded:"+decoded);
break;
public static string Unzip(byte[] bytes)
{
using (var msi = new MemoryStream(bytes))
using (var mso = new MemoryStream())
{
using (var gs = new GZipStream(msi, CompressionMode.Decompress))
{
try { gs.CopyTo(mso); }
catch { Console.Write("failed"); }
//CopyTo(gs, mso);
}
return Encoding.UTF8.GetString(mso.ToArray());
}
}
【问题讨论】:
标签: c# .net xml base64 compression