Einzelnen Beitrag anzeigen

phu

Registriert seit: 11. Apr 2006
8 Beiträge
 
#1

Problem mit Unicode-Zeichen-Darstellung mit UTF8 Codierung

  Alt 12. Jun 2008, 09:16
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!
  Mit Zitat antworten Zitat