Base64 String zu werfen ungültiges Zeichen Fehler

Ich bekomme einen Base64-ungültiges Zeichen Fehler, obwohl ich nicht sollte.

Nimmt das Programm eine XML-Datei und exportiert Sie in ein Dokument. Wenn der user will, es wird komprimieren Sie die Datei als gut. Die Kompression arbeitet gut und gibt einen Base64-String der kodiert in UTF-8 und in eine Datei geschrieben.

Wenn seine Zeit, um neu zu laden Sie das Dokument in das Programm, das ich habe, um zu überprüfen, ob Ihre komprimierten oder nicht, der code ist einfach:

byte[] gzBuffer = System.Convert.FromBase64String(text);
return "1F-8B-08" == BitConverter.ToString(new List<Byte>(gzBuffer).GetRange(4, 3).ToArray());

Prüft es den Anfang des Strings zu sehen, ob es Gzip-Dateien code in es.

Nun die Sache ist die, alle meine tests arbeiten. Ich habe einen string, komprimieren, Dekomprimieren Sie Sie, und vergleichen Sie es mit dem original. Das problem ist, wenn ich die zurückgegebene Zeichenfolge aus einem ADO-Recordset. Der string ist genau das, was wurde geschrieben, um die Datei (mit dem Zusatz von ein "\0" am Ende, aber ich glaube nicht, dass sich noch etwas tut, auch abgeschnitten, es immer noch wirft). Ich auch kopiert und eingefügt, wird der gesamte string in einer test-Methode und komprimieren/Dekomprimieren. Funktioniert einwandfrei.

Den tests vergehen wird, aber der code wird nicht mit genau der gleichen Zeichenfolge? Der einzige Unterschied ist, statt nur erklärt, eine regelmäßige Zeichenfolge und Sie es ich bin gerade zurück aus einem recordset.

Irgendwelche Ideen auf, was mache ich falsch?

InformationsquelleAutor der Frage Brandon | 2009-04-02

Schreibe einen Kommentar