Base64-Dekodierung von MIME-E-Mail nicht funktioniert (GMail API)
Bin ich über die GMail-API zum abrufen einer E-Mail-Inhalte. Ich erhalte die folgende base64-codierte Daten für den Körper: http://hastebin.com/ovucoranam.md
Aber wenn ich es durch einen base64-decoder, entweder eine leere Zeichenfolge zurück (Fehler) oder etwas, das ähnelt der HTML-Daten, aber mit ein paar seltsamen Zeichen.
Helfen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mir nicht sicher, ob Sie gelöst haben Sie noch nicht, aber GmailGuy korrekt ist. Sie brauchen, um zu konvertieren der Körper auf die Base64-RFC-4648-standard. Die jist ist, müssen Sie ersetzen
-
mit+
und_
mit/
.Habe ich genommen, Ihre ursprüngliche Eingabe und hat den Ersatz: http://hastebin.com/ukanavudaz
Und verwendet base64decode.org Sie zu entschlüsseln, und es war in Ordnung.
Müssen Sie URL (aka "web") sichere base64-Dekodierung alphabet (siehe rfc 4648), die es nicht angezeigt, die Sie tun. Mit dem standard-base64-alphabet kann Arbeit manchmal, aber nicht immer (2 Charaktere sind unterschiedlich).
Docs nicht scheinen, um konsequent zu schweigen von diesem wichtigen detail. Hier ist einer bei dem es funktioniert, obwohl:
https://developers.google.com/gmail/api/guides/drafts
Auch, wenn Ihr bestimmte Bibliothek nicht unterstützt, ist das "URL-safe" alphabet dann können Sie string-substitution auf die Zeichenfolge der ersten ("-" mit "+" und "_" durch "/") und führen Sie dann die normale base64-Decodierung auf.
NSData initWithBase64EncodedString:options:
Methode. Es muss nicht erwähnt nichts über eine URL-sichere alphabet?Ich hatte das gleiche Problem, die Dekodierung der "Daten" - Felder in der message-Objekt-Antwort von der
Gmail API
. DieGoogle Ruby API
Bibliothek war nicht Dekodieren den text richtig entweder. Ich fand, ich brauchte einurl-safe base64 decode
:Hoffe, das hilft!
Es ist ein Beispiel für python 2.x-und 3.x:
Wenn Sie nur brauchen, um zu decodieren für die Anzeige Zwecke, erwägen Sie die Verwendung atob zur Decodierung der Meldungen in JavaScript-frontend (siehe ref).
Fand ich beim spielen mit der API-Ergebnis, einmal hatte ich ein Drilldown zu den Körper ich war die Möglichkeit gegeben, zu Dekodieren, die in der zur Verfügung stehenden Methoden.
Das Ergebnis:-
com.Beispiel.quickstart ich/KÖRPER: ISOLIEREN NORMAL: 514471,Fap, South Point Rolleston, 55 Faringdon Boulevard , Rolleston, 30 Mai 2018 20:59:21
Ich bewältigte die base64-test in eine Datei (b64.txt), dann base64-dekodiert es mit base64 (von coreutils) mit der option-d (siehe http://linux.die.net/man/1/base64), und ich habe der text einwandfrei lesbar. Der Befehl, den ich verwendet wurde, war: