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

Decode 2-digit Hex Escaped

See more HTML-to-XML/Text Examples

Demonstrates how to replace escaped us-ascii chars such as \x7b and \x22 with the chars.

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;

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

procedure RunDemo;
var
  s: string;
  sb: TStringBuilder;
  numReplaced: Integer;

begin
  //  We have the following string with some us-ascii chars escaped like this:
  s := '\x7b\x22responseContext\x22:\x7b\x22';

  //  Note: The above escaping does not conform to any standard format (as far as I know).
  //  Chilkat does not have anything to decode from the above.
  //  However, we can 1st transform into a standard format, and then decode..

  //  JSON escapes chars outside us-ascii like this:  "Hello, \ud83d\ude03!"
  //  We can transform the above to this:  "\u007b\u0022responseContext\u0022:\u007b\u0022"
  //  And then decode..

  sb := TStringBuilder.Create;

  sb.Append(s);
  numReplaced := sb.Replace('\\x','\\u00');

  //  Now decode from "json" escapes
  sb.Decode('json','utf-8');

  //  Show the decoded string
  WriteLn(sb.GetAsString());

  //  Here's the result: {"responseContext":{"


  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.