Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Name von Unicode-Zeichen (https://www.delphipraxis.net/193150-name-von-unicode-zeichen.html)

Codehunter 27. Jun 2017 11:16

Name von Unicode-Zeichen
 
Hallo!

Gibt es eigentlich eine API wo man die Namen der Unicode-Zeichen abfragen kann? Gemeint ist das so:

Einfach mal charmap.exe aufrufen. Wenn man eines der Zeichen auswählt oder drüber maust, dann erscheint der Name des Zeichens in der Sprache, die das System verwendet. Hat Microsoft dafür irgendwo eine API eingebaut mit der man die Namen abfragen kann?

Grüße
Cody

bra 27. Jun 2017 11:34

AW: Name von Unicode-Zeichen
 
Sowas?
http://unicode.org/charts/charindex.html

Achso, eine API :pale:

Codehunter 27. Jun 2017 11:49

AW: Name von Unicode-Zeichen
 
Ich sage mal, die Betonung liegt auf Systemsprache ;-)

Ydobon 27. Jun 2017 12:30

AW: Name von Unicode-Zeichen
 
Die Zeichentabelle hat ihre eigene DLL: http://www.pinvoke.net/default.aspx/getuname.GetUName

Vielleicht sicherer ist aber sich bei Unicode.org die entsprechende Tabelle zu laden und selbst nachschauen.

Codehunter 27. Jun 2017 12:59

AW: Name von Unicode-Zeichen
 
Danke das war der Einstieg! Und wie ich gesehen habe, wenn man erstmal das richtige Stichwort weiß findet man auch frühere Fragen zum Thema :-D

Codehunter 27. Jun 2017 13:50

AW: Name von Unicode-Zeichen
 
Wo ich schon mal dabei bin: Kann man eigentlich auch feststellen, ob eine Schriftart ein Symbol für ein bestimmtes Zeichen enthält oder nicht? Ich schau schon alles bei den Font-Functions durch, aber ich sehe da nichts das unterscheiden ließe ob das Symbol in der Schriftart existiert oder nicht. Denn wenn nicht, wird einfach vom System her das Standard-Symbol (meistens ein rechteckiger Rahmen) verwendet.

Rollo62 27. Jun 2017 16:18

AW: Name von Unicode-Zeichen
 
Nicht das es dir jetzt weiterhilft. Aber
diese Seiten finde ich auch ganz interessant
http://http://www.fileformat.info/info/unicode/char/03a9/index.htm

himitsu 27. Jun 2017 17:32

AW: Name von Unicode-Zeichen
 
Es gibt die Unit Characters, aber da kann man sich nur die Typen/Gruppen/Eigenschaften der Chars holen,
aber leider nirgendwo die Namen.

Ich hatte auch in der GDI+ noch keine Funktion gefunden, welche den Namen liefert oder ob es das Zeichen überhaupt im Font gibt.
Du könntest zwar die Font-Datei selber auslesen/parsen und nachgucken, welche Zeichen darin definiert sind, aber das hilft nur bedingt, da in Windows auch ein Ersatzfont definiert sein könnte, welchen Windows zum Zeichnen des fehlenden Chars verwendet.
PS: Die großen Unicodefonts von Windows (z.B. Arial und MingLiU) bestehen auch nicht nur aus einer Datei. (die Chars wurden da auf mehrere Dateien verteilt)

Außerdem gibt die GDI "absichtlich" keinerlei Fehlerinformationen aus, wenn man ein nicht-vorhandenes Zeichen oder gar mit einem nicht-vorhandenen Font etwas schreiben will.



Das Einzige, was mir damals auf die schnelle eingefallen war, ist ein Bildvergleich.
* erst ein nie vorhandenes Char auf ein Bitmap zeichnen (da kommt dann das Ersatzzeichen des Fonts raus, was meistens ein Rechteck ist)
* dann das gewünschte Char zeichnen
* und die Bilder dann vergleichen :freak:

Und die Fontnamen, da hatte ich auch von unicode.org (das ist ja die Vergabestelle für die Unicodedefinition) die CSV's besorgt und die benötigten Daten als Resource an meine Anwendung gehängt.

Fritzew 27. Jun 2017 17:57

AW: Name von Unicode-Zeichen
 
Zugegeben ich habe es nicht getestet aber vieleicht hilft das:
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

Ydobon 28. Jun 2017 00:42

AW: Name von Unicode-Zeichen
 
Ist schon über 10 Jahre her, als ich das Thema CJK und solche Probleme mal hatte. Um die alten Programme zu testen müsste ich allerdings erst mal die Tnt-Controls umbauen.
Aber laut Quelltexten z.B. GetGlyphIndices.
Falls noch weitere Fragen auftauchen lohnt sich vermutlich ein Blick in die Uniscribe-Abteilung. So weit ich mich erinnere kann die automatische Ersetzung aber bei solchen Test auch falsche Ergebnisse liefern.

PS: BabelMap ist da eine nette Sache.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:31 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz