Base64 String renvoyant une erreur de caractère non valide

Je reçois un Base64 caractère non valide erreur, même si je ne devrais pas.

Le programme prend un fichier XML et l'exporte dans un document. Si l'utilisateur le souhaite, il va compresser le fichier. La compression fonctionne très bien et renvoie une Chaîne Base64 qui est encodé en UTF-8 et écrite dans un fichier.

Quand il est temps de recharger le document dans le programme, je dois vérifier si il est compressé ou pas, le code est tout simplement:

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

Il vérifie le début de la chaîne pour voir si il a ce type d'archive du code.

Maintenant, la chose est, tous mes tests travail. Je prends une chaîne de caractères, compresser, décompresser, et de la comparer à l'original. Le problème est quand je reçois la chaîne renvoyée par un jeu d'enregistrements ADO. La chaîne est exactement ce qui est écrit dans le fichier (avec l'ajout d'un "\0" à la fin, mais je ne pense pas que même n'importe quoi, même coupées ça en jette toujours). J'ai même copier et coller l'ensemble de la chaîne de caractères dans une méthode de test et de compresser/décompresser. Fonctionne très bien.

Les tests vont passer, mais le code échouer en utilisant la même chaîne? La seule différence est qu'au lieu de simplement déclarer un régulier de la chaîne et de la passer dans je suis un rendu à partir d'un jeu d'enregistrements.

Toutes les idées sur ce que je fais mal?

source d'informationauteur Brandon | 2009-04-02