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 <C_CkStringBuilder.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkStringBuilder sb;
    HCkStringBuilder sb2;

    success = FALSE;

    sb = CkStringBuilder_Create();

    CkStringBuilder_Append(sb,"This is a test");

    printf("%s\n",CkStringBuilder_getEncoded(sb,"B","utf-8"));
    // output is:
    // =?utf-8?B?VGhpcyBpcyBhIHRlc3Q=?=

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

    sb2 = CkStringBuilder_Create();

    CkStringBuilder_Append(sb2,"=?utf-8?B?VGhpcyBpcyBhIHRlc3Q=?=");
    CkStringBuilder_Decode(sb2,"B","utf-8");
    printf("%s\n",CkStringBuilder_getAsString(sb2));

    // output is:
    // This is a test

    CkStringBuilder_Clear(sb2);
    CkStringBuilder_Append(sb2,"=?utf-8?Q?This_is_a_test?=");
    CkStringBuilder_Decode(sb2,"Q","utf-8");
    printf("%s\n",CkStringBuilder_getAsString(sb2));

    // output is:
    // This is a test

    // "B" or "Q" will decode both B and Q.
    CkStringBuilder_Clear(sb2);
    CkStringBuilder_Append(sb2,"=?utf-8?Q?This_is_a_test?= 123 =?utf-8?B?VGhpcyBpcyBhIHRlc3Q=?=");
    CkStringBuilder_Decode(sb2,"Q","utf-8");
    printf("%s\n",CkStringBuilder_getAsString(sb2));

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


    CkStringBuilder_Dispose(sb);
    CkStringBuilder_Dispose(sb2);

    }