Sample code for 30+ languages & platforms
C

StringBuilder Encode Charset

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

Chilkat C Downloads

C
#include <C_CkStringBuilder.h>

void ChilkatSample(void)
    {
    const char *s;
    HCkStringBuilder sb;

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

    sb = CkStringBuilder_Create();

    CkStringBuilder_Append(sb,s);
    CkStringBuilder_EntityDecode(sb);

    //  The string now contains: "é é é"
    printf("%s\n",CkStringBuilder_getAsString(sb));

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

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

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

    //  utf-32
    //  Output: E900000020000000E900000020000000E9000000
    printf("%s\n",CkStringBuilder_getEncoded(sb,"hex","utf-32"));


    CkStringBuilder_Dispose(sb);

    }