Sample code for 30+ languages & platforms
Unicode C

Ascii85 Encoding and Decoding

See more Encryption Examples

Demonstrates ascii85 encoding and decoding.

Note: Requires Chilkat v9.5.0.79 or greater.

Chilkat Unicode C Downloads

Unicode C
#include <C_CkStringBuilderW.h>
#include <C_CkBinDataW.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkStringBuilderW sb;
    const wchar_t *encodedAscii85;
    HCkBinDataW bd;

    success = FALSE;

    // First demonstrate encoding strings to ascii85 and back.
    sb = CkStringBuilderW_Create();

    success = CkStringBuilderW_Append(sb,L"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 = CkStringBuilderW_getEncoded(sb,L"ascii85",L"utf-8");
    wprintf(L"%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:
    CkStringBuilderW_Clear(sb);
    CkStringBuilderW_Append(sb,encodedAscii85);
    success = CkStringBuilderW_Decode(sb,L"ascii85",L"utf-8");
    wprintf(L"Original:\n");
    wprintf(L"%s\n",CkStringBuilderW_getAsString(sb));

    // ---- Now encode binary data to ascii85 ----
    bd = CkBinDataW_Create();
    success = CkBinDataW_LoadFile(bd,L"qa_data/jpg/starfish20.jpg");
    encodedAscii85 = CkBinDataW_getEncoded(bd,L"ascii85");
    wprintf(L"%s\n",encodedAscii85);

    // Result is:  s4IA0!"_al8O`[\!<E0k!([(is8E!F7VQ[M+Eqj?FED)3+C]U=6"Fn ...

    // Decode...
    CkBinDataW_Clear(bd);
    CkBinDataW_AppendEncoded(bd,encodedAscii85,L"ascii85");
    success = CkBinDataW_WriteFile(bd,L"qa_output/starfish20.jpg");


    CkStringBuilderW_Dispose(sb);
    CkBinDataW_Dispose(bd);

    }