Sample code for 30+ languages & platforms
C++

MIME Header Q and B Encoding and Decoding

See more Encryption Examples

Demonstrates how to Q and B encode/decode.

Chilkat C++ Downloads

C++
#include <CkStringBuilder.h>

void ChilkatSample(void)
    {
    bool success = false;

    CkStringBuilder sb;

    sb.Append("This is a test");

    std::cout << sb.getEncoded("B","utf-8") << "\r\n";
    // output is:
    // =?utf-8?B?VGhpcyBpcyBhIHRlc3Q=?=

    std::cout << sb.getEncoded("Q","iso-8859-1") << "\r\n";
    // output is:
    // =?utf-8?Q?This_is_a_test?=

    CkStringBuilder sb2;

    sb2.Append("=?utf-8?B?VGhpcyBpcyBhIHRlc3Q=?=");
    sb2.Decode("B","utf-8");
    std::cout << sb2.getAsString() << "\r\n";

    // output is:
    // This is a test

    sb2.Clear();
    sb2.Append("=?utf-8?Q?This_is_a_test?=");
    sb2.Decode("Q","utf-8");
    std::cout << sb2.getAsString() << "\r\n";

    // output is:
    // This is a test

    // "B" or "Q" will decode both B and Q.
    sb2.Clear();
    sb2.Append("=?utf-8?Q?This_is_a_test?= 123 =?utf-8?B?VGhpcyBpcyBhIHRlc3Q=?=");
    sb2.Decode("Q","utf-8");
    std::cout << sb2.getAsString() << "\r\n";

    // output is:
    // This is a test 123 This is a test
    }