Gateway_man Geschrieben 17. September 2010 Geschrieben 17. September 2010 Guten Tag, gibt es im .NET eine bereits implementierte Funktion, welche alle ungültigen Base64 Zeichen aus einen String entfernt? lg Gateway Zitieren
Klotzkopp Geschrieben 17. September 2010 Geschrieben 17. September 2010 Wozu sollte das gut sein? Zitieren
Gateway_man Geschrieben 17. September 2010 Autor Geschrieben 17. September 2010 Ich hatte im aktuellen Projekt die Aufgabe, E-Mail von diversen Accounts zu laden und diese in einer DB zu archivieren. Dummerweise taucht beim Parsen von base64 Codierten Inhalten folgender Fehler auf: Ungültige Zeichen in einer Base-64-Zeichenfolge. Ergo suche ich jetzt nach einer Funktion, welche vor der Konvertierung alle ungültigen Zeichen entfernt. Der Fehler ist jetzt bei einer von 20 getesteten Mails aufgetreten. Deswegen genügt mir bei diesem Durchschnitt eine Quick&Dirty Lösung. Aktuelle lese ich mich in Regex ein und werde mal schaun ob ich einen passenden Pattern String zusammenbekomme. Eine weitere Frage. Ist folgende Aussage korrekt? Falls die Länge des Originalstrings nicht durch 3 teilbar ist, wird der zu codierende Text am Ende mit = Zeichen aufgefüllt, so dass der Ausgabestring immer durch 4 teilbar ist (ohne Rest). Ich war unsprünglich der Meinung ja. Allerdings trifft das bei den .eml files die mir zugespielt werden zu 70 nicht zu. lg Gateway Zitieren
Gateway_man Geschrieben 17. September 2010 Autor Geschrieben 17. September 2010 Entschuldigt ich war bei verfassen des letzten Eintrags etwas in Eile. Die Aussage: Falls die Länge des Originalstrings nicht durch 3 teilbar ist, wird der zu codierende Text am Ende mit = Zeichen aufgefüllt, so dass der Ausgabestring immer durch 4 teilbar ist (ohne Rest). bezieht sich auf die Konvertierungs-konventionen von Base64 Strings. Ich war unsprünglich der Meinung ja. Allerdings trifft das bei den eml files die mir zugespielt werden und über eine Base64 ContentCodierung verfügen, zu 70% nicht zu. lg Gateway Zitieren
Klotzkopp Geschrieben 17. September 2010 Geschrieben 17. September 2010 Was sind denn das für ungültige Zeichen? Allerdings trifft das bei den eml files die mir zugespielt werden und über eine Base64 ContentCodierung verfügen, zu 70% nicht zu.70% von allen, oder 70% von denen, deren Länge kein Vielfaches von 4 ist? Zitieren
Gateway_man Geschrieben 17. September 2010 Autor Geschrieben 17. September 2010 (bearbeitet) Bei 70 % aller getesteten E-Mails, ist die Stringlänge des Base64 Codierten Textes nicht durch 4 Teilbar. An das Fehlerhafte Zeichen bin ich bis jetzt noch nicht rangekommen. Auch die InnerException gibt nicht mehr Auskunft. Durch einen Vergleich mit den erlaubten Zeichen( "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" ) und den mir aktuell vorliegenden Zeichen, ist mir keine Abweichung aufgefallen. Das ist sehr verzwickt :beagolisc. lg Gateway Edit: Hat sich erledigt. Bearbeitet 17. September 2010 von Gateway_man Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.