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