Decodieren eines base64-codierten Strings.

Decodieren eines base64-codierten Strings. Der zurückgegebene Zeiger muss mit release wieder gelöscht werden.

Name Typ Default Beschreibung
Return char*   Neu erzeugter char*-String mit dem decodierten Eingabetext. Das Ergebnis muss mit release wieder gelöscht werden.
txt char* - beliebiger base64-codierter char*-String
binary int 0 Sollen Binärdaten dekodiert werden? Wenn dieser Parameter 1 ist, kann das Ergebnis 0en enthalten und es wird in das keine Abschließende 0 geschrieben. In diesem Fall sollten Sie den Ausgabeparameter oLength verwenden.
oLength int * 0 Ausgabelänge der dekodierten Daten. Insbesondere wichtig beim dekodieren von Binärdaten, deren Länge nicht per strlen bestimmt werden kann.
useSOAPDecoder int 0 Sie werden den Parameter kaum benötigen, aber just in case: Hat der Parameter einen Wert ungleich 0 wird exakt der gleiche Decoder verwendet, den auch SOAP verwendet. In Illustrator wird der Parameter ignoriert und immer das Standardverfahren zur Dekodierung verwendet.

Kodierung des aktuellen Textes und Rückcodierung dieses Ergebnisses sollten den gleichen String beinhalten.

int main ()
{
    String			str	= string::alloc ();
    char		*	enc	= 0;
    char		*	dec	= 0;
textmodel::gettext (str);
enc = encode_base64 (string::get (str)); dec = decode_base64 (enc);
showmessage ("%s\n\n%s\n\n%d", enc, dec, strcmp (string::get (str), dec));
release (enc); release (dec);
return 0; }

Der Text des aktuellen Textmodelles wird in eine base64-codiert in eine Datei geschrieben. Danach wird diese Datei wieder eingelesen. Original- und eingelesener Text sollten gleich sein. Achten Sie darauf, den Lesepuffer genügend groß zu machen oder in einer Schleife zu lesen und zu decodieren.

int main ()
{
    String			str	= string::alloc ();
    char		*	enc	= 0;
    char		*	dec	= 0;
    char			buf	[3001];
    int				fi	= 0;
textmodel::gettext (str);
// Encode to file enc = encode_base64 (string::get (str));
fi = file::open ("$DESKTOP/txt.txt", "w"); file::write (fi, enc); file::close (fi);
// Decode from file fi = file::open ("$DESKTOP/txt.txt", "r"); file::read (fi, buf, 3000); file::close (fi); dec = decode_base64 (buf);
showmessage ("%s\n\n%s\n\n%d", enc, dec, strcmp (string::get (str), dec));
release (enc); release (dec);
return 0; }

Seit
Version 3.2.2 R2366, 28.03.2011
Parameter useSOAPDecoder since v4.2 R31520

Verfügbarkeit
priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator

Siehe auch
encode_base64

Alphabetic index HTML hierarchy of classes or Java