Sample code for 30+ languages & platforms
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

Pascal (Lazarus/Delphi)
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.