jupp, UTF-8 kann die
VCL nicht anzeigen ... alles was sie bekommt, wird als
ANSI angesehn (egal was drinnen ist) und dieses wird dann von Windows über den gewählten CharSet interpretiert.
Und
Unicode/WideString wird nach
ANSI umgewandelt, wofür die aktuelle Standard-Codepage verwendet wird, welche in einem deutschen Windows natürlich deutsch spricht.
theoretischer Code:
wie gesagt, du mußt das schon selber in den gewünschen Zeichensatz umwandeln
und jetzt muß man nun noch die passende CodePage zum entsprechenden CharSet rausfinden.
Delphi-Quellcode:
var U: WideString;
S: AnsiString;
C: LongWord;
i: Integer;
begin
// dieses besser gleich im OI einstellen
Label1.Font.CharSet := TURKISH_CHARSET;
U := '
türkische Zeichen';
C := 28599
{ISO 8859-9 Turkish};
//C := 1254 {ANSI Turkish; Turkish (Windows)};
i := WideCharToMultiByte(C, 0, PWideChar(U), -1,
nil, 0, '
?',
nil);
SetLength(S, i - 1);
WideCharToMultiByte(C, 0, PWideChar(U), -1, PAnsiChar(S), i, '
?',
nil);
//Label1.Font.CharSet := TURKISH_CHARSET;
Label1.Caption := S;
Du willst praktisch das machen, was ich dort mit dem Chinesischen versucht hab:
(ein paar Posts weiter ist auch der QuellCode)
http://www.delphipraxis.net/internal...090323#1090323
und nun mußt du noch deinen Text in die passende Codepage/Charset umwandeln.