Arabische Glyphen aus QString ermitteln

Verschiedenes zu Qt
Antworten
Jacques Nietsch
Beiträge: 5
Registriert: 13. Oktober 2006 10:42

Arabische Glyphen aus QString ermitteln

Beitrag von Jacques Nietsch »

Ich habe das Problem, aus arabischen Text die Glypen zu extrahieren zu müssen.
Beim Stöbern des QT Quellcodes habe ich etliche Stellen gefunden, in
der solche Dinge behandelt werden, aber ich habe keine Schnittstellen
dazu gefunden.
Hat hier jemand eine Idee, oder kann mir sagen, wo ich Informationen zu diesem Thema
finden kann?

Gruss Jacques
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Im Unicode-Zeichensatz finden sich die arabischen Zeichen an den Stellen zwischen 1536 und 1791 (mehr). Wenn Du die Nummer jedes Zeichen überprüfst, dann weißt Du ob Arabisch oder nicht.
Eltharion
Beiträge: 74
Registriert: 4. Mai 2006 14:42
Wohnort: Magdeburg
Kontaktdaten:

Beitrag von Eltharion »

Ja. Da liegen die Zeichen, aber die Glyphen laufen im Unicode unter "Arabische Präsentationsformen A und B" und habendaher andere Werte.

Im Arabischen werden die Buchstaben je nach dem ob er am Wortanfang, Wortmitte, Wortende oder isoliert dasteht, anders dargestellt. Diese Darstellungen, also die Glyphen, ändern sich beim Tippen der Buchstaben automatisch. Eigentlich sollten Programme nur auf die einzelnen Zeichen zugreifen und die Glyphen dem zugrunde liegenden System überlassen. Der Grund ist, dass z.B. Texte, die aus Glyphen bestehen, nicht mehr bearbeitet werden können. Das ist so, als ob man in Photoshop oder im Acrobat einen Text hat und den anpassen will. Die Zeichen rechts und links davon lassen sich zwar manuell verschieben, aber letztlich ist das Layout selbst kaputt. Die Regel ist einfach: die Zeichen zu speichern und zu benutzen und die Glyphen automatisch anzeigen lassen.

Könntest Du bitte erklären, wozu Du die Glyphen selbst benötigst? Soll das eine Art Lernprogramm zum Nachzeichnen von Buchstaben werden? Was anderes fällt mir beim besten Willen nicht ein.

E*
Antworten