Ach ja, man mag es nicht glauben ... ich war auch vor Schreck aus allen Wolken gefallen ... aber es gibt wirklich ein SetString, welches einen PAnsiChar an einen String/UnicodeString zuweist.
Da es hier nun UTF-8 ist (was man im ersten Post ja nicht erahnen konnte),
ist hier das Problem, dass dort der PAnsiChar als
ANSI angesehn wird, anstatt UTF-8.
Mit dem passenden String-Typen funktioniert aber auch das.
Delphi-Quellcode:
var
S: UTF8String;
begin
SetString(S, PAnsiChar(@AData[0]), length(Adata));
UTF-8 ist ja eine bestimmte
ANSI-Codepage.
Somit schreibt SetString das als
ANSI ByteCode da rein
und beim Zuweisen an einen String/UnicodeString (hier ans Trim) wird dieser AnsiString-Typ dann entsprechend seiner CodePage (CP_UTF8) "richtig" dekodiert.
Oder AnsiString-Variable mit
SetCodePage, nach dem SetString.