Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
Delphi 12 Athens
|
AW: UTF8 Literale leserlich machen. Welche Unit / Funktion?
25. Jul 2019, 10:36
So, ich möchte dann bitte auch nochmal (nur so wegen der Vielfalt):
Delphi-Quellcode:
uses
System.SysUtils,
System.Classes;
function DecodeCStyleString(const AStr: String): String;
const
cLeadIn: TBytes = [$5C, $78]; // '\x'
var
cnt: Integer;
source: TBytes;
target: TBytes;
i: Integer;
begin
source := TEncoding.UTF8.GetBytes(AStr);
SetLength(target, Length(source)); // ausreichend Platz schaffen
cnt := 0;
i := 0;
while (i < Length(source)) do
begin
if ((i + 3) < Length(source)) and
CompareMem(@source[I], @cLeadIn[0], 2) and
(HexToBin(source, I + 2, target, cnt, 1) = 1) then
begin
Inc(cnt);
Inc(i, 4);
Continue;
end;
target[cnt] := source[i];
inc(cnt);
Inc(i);
end;
Result := TEncoding.UTF8.GetString(target, 0, cnt);
end;
Geändert von Uwe Raabe (25. Jul 2019 um 10:59 Uhr)
Grund: code fix
|
|
Zitat
|