Sample code for 30+ languages & platforms
Unicode C

StringBuilder Encode Charset

Demonstrates the importance of the charset argument when encoding/decoding.

Chilkat Unicode C Downloads

Unicode C
#include <C_CkStringBuilderW.h>

void ChilkatSample(void)
    {
    const wchar_t *s;
    HCkStringBuilderW sb;

    s = L"&eacute; &#233; &#xE9;";

    sb = CkStringBuilderW_Create();

    CkStringBuilderW_Append(sb,s);
    CkStringBuilderW_EntityDecode(sb);

    //  The string now contains: "é é é"
    wprintf(L"%s\n",CkStringBuilderW_getAsString(sb));

    //  If encoded to hex using the iso-8859-1 charset, 
    //  each é char is represented in 1 byte.
    //  Output: E920E920E9
    wprintf(L"%s\n",CkStringBuilderW_getEncoded(sb,L"hex",L"iso-8859-1"));

    //  If encoded to hex using the utf-8 charset, 
    //  each é char is represented in 2 bytes.
    //  Output: C3A920C3A920C3A9
    wprintf(L"%s\n",CkStringBuilderW_getEncoded(sb,L"hex",L"utf-8"));

    //  Here's utf-16
    //  Output: E9002000E9002000E900
    wprintf(L"%s\n",CkStringBuilderW_getEncoded(sb,L"hex",L"utf-16"));

    //  utf-32
    //  Output: E900000020000000E900000020000000E9000000
    wprintf(L"%s\n",CkStringBuilderW_getEncoded(sb,L"hex",L"utf-32"));


    CkStringBuilderW_Dispose(sb);

    }