Einzelnen Beitrag anzeigen

Scurra

Registriert seit: 19. Jan 2015
81 Beiträge
 
Delphi 10.3 Rio
 
#1

Anzeigen von Unicode-Zeichen

  Alt 22. Apr 2020, 10:25
Hallo zusammen,

durch Einführung der "Unicode UTF-8"-Einstellung in Windows 10 (siehe hier: https://www.delphipraxis.net/203925-...verwenden.html) mussten wir ein paar Stellen in unserer Software anpassen. Ein Problem besteht nun jedoch weiterhin:

Wir haben in unserer Software ein Feedback-Formular, in dem wir Smileys zum Bewerten anzeigen. Früher haben wir dort die Zeichen "J", "K" und "L" in der Wingdings Schriftart angezeigt, was dann als lachender, neutraler bzw. trauriger Smiley angezeigt wurde. Durch die "Unicdoe UTF-8"-Einstellung in Windows wurden dann tatsächlich nur noch die Buchstaben "J", "K" und "L" angezeigt.

Als Lösung habe ich mir gedacht, dass wir einfach die Unicode-Zeichen für die Smileys benutzen und anzeigen können. Mit folgender Implementierung kann man das testen:
Delphi-Quellcode:
procedure TfrmMain.Button1Click(Sender: TObject);
const
  SMILEY_UTF8_SLIGHTLY_SMILING_FACE: RawByteString = #$F0#$9F#$99#$82; // Unicode Code Point: U+1F642 (UTF-8 encoded)
begin
  ShowMessage(Utf8ToString(SMILEY_UTF8_SLIGHTLY_SMILING_FACE));
end;
Die Idee dahinter ist einfach: Ich benutze die UTF-8-Kodierung für den Smiley und lasse mir die Bytes in einen (Unicode-)String konvertieren.

Unter Windows 10 funktioniert das auch ohne Probleme (unabhängig davon, ob die Unicode UTF-8 Einstellung gesetzt ist oder nicht). Siehe Anhang "Windows 10.jpg".
Unter Windows 7 wird der Smiley jedoch nicht richtig dargestellt. Siehe Anhang "Windows 7.jpg".


Ich frage mich, warum die Darstellung unter Windows 7 nicht gelingt und wie das Problem unabhängig von der Windows-Version gelöst werden kann. Ich bin für Hilfe/Ideen dankbar.
Miniaturansicht angehängter Grafiken
windows-10.jpg   windows-7.jpg  

Geändert von Scurra (22. Apr 2020 um 15:46 Uhr)
  Mit Zitat antworten Zitat