Sample code for 30+ languages & platforms
Unicode C++

MIME Header Q and B Encoding and Decoding

See more Encryption Examples

Demonstrates how to Q and B encode/decode.

Chilkat Unicode C++ Downloads

Unicode C++
#include <CkStringBuilderW.h>

void ChilkatSample(void)
    {
    bool success = false;

    CkStringBuilderW sb;

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

    wprintf(L"%s\n",sb.getEncoded(L"B",L"utf-8"));
    // output is:
    // =?utf-8?B?VGhpcyBpcyBhIHRlc3Q=?=

    wprintf(L"%s\n",sb.getEncoded(L"Q",L"iso-8859-1"));
    // output is:
    // =?utf-8?Q?This_is_a_test?=

    CkStringBuilderW sb2;

    sb2.Append(L"=?utf-8?B?VGhpcyBpcyBhIHRlc3Q=?=");
    sb2.Decode(L"B",L"utf-8");
    wprintf(L"%s\n",sb2.getAsString());

    // output is:
    // This is a test

    sb2.Clear();
    sb2.Append(L"=?utf-8?Q?This_is_a_test?=");
    sb2.Decode(L"Q",L"utf-8");
    wprintf(L"%s\n",sb2.getAsString());

    // output is:
    // This is a test

    // "B" or "Q" will decode both B and Q.
    sb2.Clear();
    sb2.Append(L"=?utf-8?Q?This_is_a_test?= 123 =?utf-8?B?VGhpcyBpcyBhIHRlc3Q=?=");
    sb2.Decode(L"Q",L"utf-8");
    wprintf(L"%s\n",sb2.getAsString());

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