Eine Datenbank enthält eine Spalte mit XML-Daten und einen CDATA-Abschnitt mit einer Base64-codierten Zip-Datei. Mit XmlReader konnte ich eine Zeichenfolge aus dem CDATA-Abschnitt abrufen, aber nachdem ich die Zeichenfolge mit dem Code dekomprimiert habe, bekomme ich null von den dekomprimierten Daten. HilfeKomprimierte Daten in XML lesen
case XmlNodeType.CDATA:
string base64EncodedData = xreader.Value;
var base64EncodedBytes = Convert.FromBase64String(base64EncodedData);//convert to bytes
string decoded = Unzip(base64EncodedBytes);
writer.WriteString("decoded:"+decoded);
break;
bitte
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());
}
}
Der Datentyp ist Langtext, codiert UTF8. – Scar
Probierte auch andere Möglichkeiten, um Daten zu dekomprimieren, aber bekam "Die magische Zahl in GZip-Header ist nicht korrekt. Stellen Sie sicher, dass Sie in einem GZip-Stream übergeben." oder irgendein unlesbarer Text. – Scar