Dann frag einmal Deine
OH nach TEncoding.UTF8.
Wenn's das noch nicht gibt, bleibt Dir noch der Weg die Übersetzung per Hand zu Erledigen z.B. so
Delphi-Quellcode:
FUNCTION AnsiToUtf8 (Source : ANSISTRING) :
STRING;
(* Converts the given Windows ANSI (Win1252) String to UTF-8. *)
VAR
I : INTEGER;
// Loop counter
U : WORD;
// Current Unicode value
Len : INTEGER;
// Current real length of "Result" string
BEGIN
SetLength (Result, Length (Source) * 3);
// Worst case
Len := 0;
FOR I := 1
TO Length (Source)
DO BEGIN
U := WIN1252_UNICODE [ORD (Source [I])];
CASE U
OF
$0000..$007F :
BEGIN
INC (Len);
Result [Len] := CHR (U);
END;
$0080..$07FF :
BEGIN
INC (Len);
Result [Len] := CHR ($C0
OR (U
SHR 6));
INC (Len);
Result [Len] := CHR ($80
OR (U
AND $3F));
END;
$0800..$FFFF :
BEGIN
INC (Len);
Result [Len] := CHR ($E0
OR (U
SHR 12));
INC (Len);
Result [Len] := CHR ($80
OR ((U
SHR 6)
AND $3F));
INC (Len);
Result [Len] := CHR ($80
OR (U
AND $3F));
END;
END;
END;
SetLength (Result, Len);
END;
(Ist nicht von mir, aber um das Prinzip zu erkennen sollte es reichen)
Gruß
K-H