Veröffentlicht 17. September 201015 j Guten Tag, gibt es im .NET eine bereits implementierte Funktion, welche alle ungültigen Base64 Zeichen aus einen String entfernt? lg Gateway
17. September 201015 j Autor 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
17. September 201015 j Autor 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
17. September 201015 j 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?
17. September 201015 j Autor 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 201015 j von Gateway_man
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.