Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

Load ucs2 XML File (utf-16)

See more XML Examples

Demonstrates how to load a ucs2 (utf-16 little-endian) XML file into Chilkat XML.

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.StringBuilder,
  Chilkat.Xml;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  success: Boolean;
  xml: TXml;
  sb: TStringBuilder;

begin
  success := False;

  //  If the XML file specifies the encoding in the XML declaration, such as:
  //  <?xml version = "1.0" encoding = "UTF-16" standalone = "no" ?>
  //  Then it's simply a matter of calling LoadXmlFile.
  //  Chilkat will automatically read the XML declaration and will
  //  process the file correctly.   For example:

  xml := TXml.Create;
  success := xml.LoadXmlFile('qa_data/xml/sample_ucs2.xml');

  //  If, however, there is no XML declaration to indicate the character encoding,
  //  then you must explicitly read the file according to what you know
  //  is the correct encoding.  For example:
  sb := TStringBuilder.Create;
  success := sb.LoadFile('qa_data/xml/sample_ucs2.xml','utf-16');
  //  Assuming success...
  success := xml.LoadSb(sb,True);

  //  To convert to the XML from utf-16 to utf-8, do the following:
  xml.Encoding := 'utf-8';
  WriteLn(xml.GetXml());
  success := xml.SaveXml('qa_output/sample_utf8.xml');


  xml.Free;
  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.