Thema: Delphi Türkische Zeichen

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#19

Re: Türkische Zeichen

  Alt 29. Okt 2009, 14:17
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat