C
C
Ascii85 Encoding and Decoding
See more Encryption Examples
Demonstrates ascii85 encoding and decoding.Note: Requires Chilkat v9.5.0.79 or greater.
Chilkat C Downloads
#include <C_CkStringBuilder.h>
#include <C_CkBinData.h>
void ChilkatSample(void)
{
BOOL success;
HCkStringBuilder sb;
const char *encodedAscii85;
HCkBinData bd;
success = FALSE;
// First demonstrate encoding strings to ascii85 and back.
sb = CkStringBuilder_Create();
success = CkStringBuilder_Append(sb,"Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.");
encodedAscii85 = CkStringBuilder_getEncoded(sb,"ascii85","utf-8");
printf("%s\n",encodedAscii85);
// Result is: 9jqo^BlbD-BleB1DJ+*+F(f,q/0JhKF<GL>Cj@.4 ... DII?(E,9)oF*2M7/c
// Decode back to the original:
CkStringBuilder_Clear(sb);
CkStringBuilder_Append(sb,encodedAscii85);
success = CkStringBuilder_Decode(sb,"ascii85","utf-8");
printf("Original:\n");
printf("%s\n",CkStringBuilder_getAsString(sb));
// ---- Now encode binary data to ascii85 ----
bd = CkBinData_Create();
success = CkBinData_LoadFile(bd,"qa_data/jpg/starfish20.jpg");
encodedAscii85 = CkBinData_getEncoded(bd,"ascii85");
printf("%s\n",encodedAscii85);
// Result is: s4IA0!"_al8O`[\!<E0k!([(is8E!F7VQ[M+Eqj?FED)3+C]U=6"Fn ...
// Decode...
CkBinData_Clear(bd);
CkBinData_AppendEncoded(bd,encodedAscii85,"ascii85");
success = CkBinData_WriteFile(bd,"qa_output/starfish20.jpg");
CkStringBuilder_Dispose(sb);
CkBinData_Dispose(bd);
}