Hallo zusammen
Ich habe eine Knacknuss mit einer
Unicode-Darstellung mit UTF-8. Ich habe das Problem, wenn ich ein Zeichen übergebe, dass mir das Zeichen nicht dargestellt wird.
Grundsätzlich habe ich meine Klassen so erweitert, dass die UTF-8 codierung als Caption übergeben werden kann, die anschliessend intern in WideString umgewandelt und mit der DrawTextW als
Unicode ausgegeben wird. Als Font verwende ich Arial
Unicode MS.
Nun habe ich festgestellt, dass Zeichen in höherem Adressraum nicht dargestellt werden. Ich meine zu glauben, dass ich 2005 mit der gleichen Methode erfolgreich war und kann mir nicht erklären weshalb die Zeichen nicht mehr dargestellt werden.
Als Beispiel habe ich die Beispielklasse verwendet, die von CalganX hier im Forum veröffentlicht wurde. Mit dieser Klasse habe ich das gleiche Problem wie bei meinen eigenen Klassen:
Link zu TUnicode-Label-Klasse
Illustration Abfüllung des Textes mit einem chinesischen Zeichen (D481#) in UTF-8-Codierung (EFC883#):
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
fName : WideString;
begin
fName :=UTF8Decode(Chr(StrToInt('$EF'))+chr(strtoint('$C8'))+chr(strtoint('$83')));
UnicodeLabel.Caption := fName;
end;
Für einen heissen Tipp wo das Problem liegen könnte, bin ich sehr dankbar!