Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Fonts mit allen Unicode Zeichen (https://www.delphipraxis.net/115838-fonts-mit-allen-unicode-zeichen.html)

cokotech2 18. Jun 2008 18:15


Fonts mit allen Unicode Zeichen
 
Hallo!

Ich habe ein kleines Programm geschrieben als Zusatz für ein Online Game. Dort werden die unsinnigsten Zeichen in Unicode verwendet.
Leider habe ich kein Font gefunden, der alle darstellt. Arial, Arial Unicode MS etc. habe ich probiert. Bei dem einen geht das eine Zeichen nicht, bei dem anderen dann andere nicht.

1. Frage: Gibt es einen wirklich vollständigen Font?

2. Frage: Lässt sich írgendwie feststellen, ob der gerade verwendetete Font das Zeichen darstellt oder nicht? Dann könnte man (es sind Sonderzeichenbuttons die belegt werden) halt den Font immer ändern je nach Zeichen.


Hat jemand ne Idee?


Gruß Sven!

FAlter 18. Jun 2008 18:30

Re: Fonts mit allen Unicode Zeichen
 
Hi,

http://de.wikipedia.org/wiki/Unicode...3.9Cbertragung
Zitat:

Im Gegensatz zu früheren Zeichenkodierungen, welche meist nur ein bestimmtes Schriftsystem kodierten, ist es das Ziel von Unicode, alle in Gebrauch befindlichen Schriftsysteme und Zeichen zu kodieren[11]. Um dieses Ziel zu erreichen, wurde Unicode zunächst als ein 16-Bit-Zeichensatz mit insgesamt 65.536 Zeichen definiert. Da sich dieser Coderaum schon bald als unzureichend darstellte, wurde Unicode in der Version 2.0 auf 17 Planes zu je 65.536 Zeichen erweitert, sodass nunmehr ein Raum von insgesamt 1.114.112 Zeichen (von U+0000 bis U+10FFFF) zur Verfügung steht. In Unicode 5.1 sind 100.713 Codepoints individuellen Zeichen zugeordnet.
Es sind noch gar nicht alle Zeichen (1.114.112 Maximal) belegt, sondern nur 100.713.

Mfg
FAlter

Assertor 18. Jun 2008 18:44

Re: Fonts mit allen Unicode Zeichen
 
Hi cokotech2,

ich versteh die Antwort von FAlter nicht in diesem Zusammenhang, aber egal...

Für Dein Problem ist ArialUni.ttf schon der richtige Ansatz, wahrscheinlich sind die Surrogates nicht aktiviert:
http://de.wikipedia.org/wiki/Wikiped...e_angezeigt.3F

Solltest Du bei der aktuellen ArtialUni.ttf zusammen mit den aktivieren Surragates über U+10000 trotzdem Rechtecke bzw. falsche Darstellungen sehen, stimmt etwas am Code nicht.

Gruß Assertor

FAlter 18. Jun 2008 18:48

Re: Fonts mit allen Unicode Zeichen
 
Hi,

Zitat:

Zitat von Assertor
ich versteh die Antwort von FAlter nicht in diesem Zusammenhang, aber egal...

Nun, er sucht nach einer Schrift, in der es alle Zeichen gibt. Es sind allerdings noch gar nicht alle theoretisch möglichen Zeichen belegt, also wird es so eine Schrift wohl nicht geben, oder? Falls er nur die 100713 belegten Zeichen meint, ist mein Beitrag natürlich unpassend, aber das ging ja aus dem ersten Post nicht hervor.

Mfg
FAlter

Assertor 18. Jun 2008 18:57

Re: Fonts mit allen Unicode Zeichen
 
Zitat:

Zitat von FAlter
Nun, er sucht nach einer Schrift, in der es alle Zeichen gibt. Es sind allerdings noch gar nicht alle theoretisch möglichen Zeichen belegt, also wird es so eine Schrift wohl nicht geben, oder? Falls er nur die 100713 belegten Zeichen meint, ist mein Beitrag natürlich unpassend, aber das ging ja aus dem ersten Post nicht hervor.

Ok, in dem Zusammenhang hast Du recht. Wobei einen umfangreicheren Standardfont als ArialUni.ttf kenne ich nicht - da dürfte es nicht sein, daß eine andere Schrift mehr Unicode Zeichen per Surrogates darstellen kann.

Es kann höchstens sein, daß in einer anderen Schriftdatei normale Wertbereiche mit anderen Zeichen belegt sind - so wie z.B. Windings. Aber das sind Äpfel und Birnen und hat ja nichts mit Unicode zu tun...

Das ist die alte Sache mit Informationen und deren Darstellung.

Gruß Assertor

jus 18. Jun 2008 19:31

Re: Fonts mit allen Unicode Zeichen
 
Zitat:

Zitat von cokotech2
Hallo!

Ich habe ein kleines Programm geschrieben als Zusatz für ein Online Game. Dort werden die unsinnigsten Zeichen in Unicode verwendet.
Leider habe ich kein Font gefunden, der alle darstellt. Arial, Arial Unicode MS etc. habe ich probiert. Bei dem einen geht das eine Zeichen nicht, bei dem anderen dann andere nicht.

1. Frage: Gibt es einen wirklich vollständigen Font?

Mir ist meines Wissens außer dem Arial Unicode (bei fast jeder MS Office CD dabei), den du ja schon kennst, keine Schriftart(True Type Font) bekannt, das noch mehr Zeichen enthält. Es wird wohl daraus hinauslaufen, dass du mehrere Schriften verwenden mußt. Eine weitere Schrift, die aber eher stark in asiatische Zeichen ist, wäre Bitstream Cyberbit. Die wurde damals von Netscape gratis zum Download freigegeben. Vermutlich wirst du es noch irgendwo finden. 8)

Zitat:

Zitat von cokotech2

2. Frage: Lässt sich írgendwie feststellen, ob der gerade verwendetete Font das Zeichen darstellt oder nicht? Dann könnte man (es sind Sonderzeichenbuttons die belegt werden) halt den Font immer ändern je nach Zeichen.


Hat jemand ne Idee?


Gruß Sven!

Ich hatte mich mal damit beschäftigt, hatte aber nur mäßigen Erfolg gehabt, aber es war auch für eine anderen Zweck. Der Schlüsselbefehl, den ich damals verwendet habe, ist die API-Funktion:
Delphi-Quellcode:
GetGlyphIndicesW
Grüße,
jus

:)

cokotech2 19. Jun 2008 06:40

Re: Fonts mit allen Unicode Zeichen
 
Danke erstmal für die Antworten....

also die Option ist eigentstellt, hatte ja vorher unter den Länderoptionen alles eingeschaltet.
Ich denke nicht das der Code falsch ist, von 880 verwendeten Zeichen sind ja nur ein paar falsch, ich benutze TNT Unicode, also nicht selbstgebautes.
Das mit den GetGlyphIndicesW ist mir nicht ganz klar, werde aber mal ein wenig googeln!


Gruß Sven!

Ydobon 19. Jun 2008 06:58

Re: Fonts mit allen Unicode Zeichen
 
Es gibt da sogar noch ein paar mehr Funktionen, richtig glücklich kann man aber eigentlich mit allen nicht werden. Eventuell finde ich mein Bastelprogramm zu diesem Zweck noch irgendwo.

Empfehlen würde ich allerdings z.B. BabelMap

Eine vollständige Schriftart kann es generell nicht geben, da diese nicht genügend Glyphen enthalten können. Arial Unicode enthält übrigens keine Zeichen oberhalb der BMP, da es noch auf einer 2er Unicodeversion basiert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:11 Uhr.

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