Sample code for 30+ languages & platforms
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

C++
#include <CkStringBuilder.h>
#include <CkBinData.h>

void ChilkatSample(void)
    {
    bool success = false;

    // First demonstrate encoding strings to ascii85 and back.
    CkStringBuilder sb;

    success = sb.Append("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.");

    const char *encodedAscii85 = sb.getEncoded("ascii85","utf-8");
    std::cout << encodedAscii85 << "\r\n";

    // Result is: 9jqo^BlbD-BleB1DJ+*+F(f,q/0JhKF<GL>Cj@.4 ... DII?(E,9)oF*2M7/c

    // Decode back to the original:
    sb.Clear();
    sb.Append(encodedAscii85);
    success = sb.Decode("ascii85","utf-8");
    std::cout << "Original:" << "\r\n";
    std::cout << sb.getAsString() << "\r\n";

    // ---- Now encode binary data to ascii85 ----
    CkBinData bd;
    success = bd.LoadFile("qa_data/jpg/starfish20.jpg");
    encodedAscii85 = bd.getEncoded("ascii85");
    std::cout << encodedAscii85 << "\r\n";

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

    // Decode...
    bd.Clear();
    bd.AppendEncoded(encodedAscii85,"ascii85");
    success = bd.WriteFile("qa_output/starfish20.jpg");
    }