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