Lazarus Pascal
Lazarus Pascal
StringBuilder Encode Charset
Demonstrates the importance of the charset argument when encoding/decoding.Chilkat Lazarus Pascal Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.StringBuilder;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
s: string;
sb: TStringBuilder;
begin
s := 'é é é';
sb := TStringBuilder.Create;
sb.Append(s);
sb.EntityDecode();
// The string now contains: "é é é"
WriteLn(sb.GetAsString());
// If encoded to hex using the iso-8859-1 charset,
// each é char is represented in 1 byte.
// Output: E920E920E9
WriteLn(sb.GetEncoded('hex','iso-8859-1'));
// If encoded to hex using the utf-8 charset,
// each é char is represented in 2 bytes.
// Output: C3A920C3A920C3A9
WriteLn(sb.GetEncoded('hex','utf-8'));
// Here's utf-16
// Output: E9002000E9002000E900
WriteLn(sb.GetEncoded('hex','utf-16'));
// utf-32
// Output: E900000020000000E900000020000000E9000000
WriteLn(sb.GetEncoded('hex','utf-32'));
sb.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.