Sample code for 30+ languages & platforms
Delphi DLL

StringBuilder Encode Charset

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

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, StringBuilder;

...

procedure TForm1.Button1Click(Sender: TObject);
var
s: PWideChar;
sb: HCkStringBuilder;

begin
s := 'é é é';

sb := CkStringBuilder_Create();

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

// The string now contains: "é é é"
Memo1.Lines.Add(CkStringBuilder__getAsString(sb));

// If encoded to hex using the iso-8859-1 charset, 
// each é char is represented in 1 byte.
// Output: E920E920E9
Memo1.Lines.Add(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
Memo1.Lines.Add(CkStringBuilder__getEncoded(sb,'hex','utf-8'));

// Here's utf-16
// Output: E9002000E9002000E900
Memo1.Lines.Add(CkStringBuilder__getEncoded(sb,'hex','utf-16'));

// utf-32
// Output: E900000020000000E900000020000000E9000000
Memo1.Lines.Add(CkStringBuilder__getEncoded(sb,'hex','utf-32'));

CkStringBuilder_Dispose(sb);

end;