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
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
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
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?
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden