Ich versuche Boost Base64 Encoder zu verwenden, ich habe ein Beispiel gefunden, aber ich habe und Ausnahme
%Vor%ich habe
benutzt %Vor%Ich verstehe es
Nicht behandelte Ausnahme bei 0x75b1b9bc in Agentid_coder.exe: Microsoft C ++ Ausnahme: boost :: archive :: iterators :: dataflow_exception im Speicher Standort 0x0046ed94 ..
Ich habe diese Problemumgehung gefunden, aber ich bekomme das gleiche Ergebnis
%Vor%Ich verwende MSVS2008 und boote 1.38
Leider ist die Kombination der beiden iterator_adaptors
binary_from_base64
und transform_width
kein kompletter Base64 Encoder / Decoder. Base64 stellt Gruppen von 24 Bits (3 Bytes) als 4 Zeichen dar, von denen jedes 6 Bits codiert. Wenn die Eingangsdaten kein ganzzahliges Vielfaches von solchen 3-Byte-Gruppen sind, müssen sie mit einem oder zwei Nullbytes aufgefüllt werden. Um anzuzeigen, wie viele Füllbytes hinzugefügt wurden, werden ein oder zwei =
-Zeichen an die codierte Zeichenfolge angehängt.
transform_width
, das für die Umwandlung der 8-Bit-Binärdatei in 6-Bit-Ganzzahlen verantwortlich ist, wendet diese Auffüllung nicht automatisch an, sondern muss vom Benutzer ausgeführt werden. Ein einfaches Beispiel:
Beachten Sie, dass ich die Iteratoren insert_linebreaks
und remove_whitespace
hinzugefügt habe, so dass die Ausgabe von base64 schön formatiert ist und Base64-Eingaben mit Zeilenumbrüchen dekodiert werden können. Diese sind jedoch optional.
Führen Sie verschiedene Eingabezeichenfolgen aus, die eine andere Auffüllung erfordern:
%Vor%Sie können die base64-Strings mit diesem Online-Encoder / Decoder überprüfen.
>