Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Setting the MIME Text Charset (such as utf-8, iso-8859-1, etc.)
See more MIME Examples
Demonstrates how setting the Charset property controls the character encoding used for the text body in a MIME message.Chilkat Pascal (Lazarus/Delphi) 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.Mime;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
mime: TMime;
begin
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
mime := TMime.Create;
// Set the MIME body using some 8bit non-us-ascii characters:
mime.SetBody('á, é, í, ó, ú');
// Set the Content-Type
mime.ContentType := 'text/plain';
// Set the Content-Transfer-Encoding to "quoted-printable";
// so it's easy to see the bytes used to encode each character
// (i.e. it will be easy to see that utf-8 uses 2-bytes for
// non-us-ascii characters such as "á", whereas a character
// encoding such as iso-8859-1 will use one byte per character.
mime.Encoding := 'quoted-printable';
// Set the Charset to utf-8
mime.Charset := 'utf-8';
// Examine the MIME:
WriteLn(mime.GetMime());
// The MIME should look like this:
// Content-Transfer-Encoding: quoted-printable
// Content-Type: text/plain; charset="utf-8";
//
// =C3=A1, =C3=A9, =C3=AD, =C3=B3, =C3=BA
// Now change the Charset to "iso-8859-1";
mime.Charset := 'iso-8859-1';
// Get the MIME again...
WriteLn(mime.GetMime());
// Now the MIME should look like this:
// Content-Transfer-Encoding: quoted-printable
// Content-Type: text/plain; charset="iso-8859-1";
//
// =E1, =E9, =ED, =F3, =FA
mime.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.