Unicode-Normalformen

Problemstellung

Viele Zeichen können auf unterschiedliche Art und Weise im Unicode abgespeichert werden. Dies betrifft insbesondere diakritische Zeichen, aber bspw. auch Ligaturen oder japanische Katakana.

Leider können nicht alle Programme mit dieser mehrdeutigen Kodierung umgehen; so wird bei einer Suche nach »fliegen« nicht unbedingt auch »fliegen« (mit fl-Ligatur) gefunden. Dies ist umso problematischer, da bspw. ä (als ein Zeichen) und ä (als zusammengesetztes Zeichen) keine optischen Unterschiede aufweisen sollten.

Diakritische Zeichen

Im Unicode können insbesondere viele diakritische Zeichen als eigenständiges (wie z.B. ä, é, …) oder als zusammengesetztes Zeichen (»a+¨«, »e+´«, …) gesendet werden.

Soll jedoch eine Zahl mit einem diakritschen Zeichen versehen werden, oder ein Buchstabe mit mehreren Diakritika, so ist dies (in der Mehrzahl der Fälle) nur über zusammengesetztes Zeichen (Combining Characters) möglich. Diese Methode ist also deutlich flexibler, da Diakritika quasi beliebig kombiniert werden können und nicht jede seltene Kombination einzeln im Unicode aufgeführt werden muss. Infolgedessen wird diese Methode vom Unicode-Konsortium vorgezogen und sollte eigentlich Standard sein.

In der Praxis wird diese Empfehlung jedoch nur von Apple-Rechnern umgesetzt. Unter Linux und Windows werden meist die eigenständigen Zeichen bevorzugt, da diese aus älteren (wie den ISO 8859- Zeichensätzen aus Kompatibilitätsgründen in den Unicode übernommen wurden. Deshalb können viele Programme auch heute noch nicht mit zusammengesetzen Zeichen umgehen; die Diakritika werden dann als Kasten angezeigt, oder verrutschen auf andere Buchstaben, …

Normalformen

Um die beschriebenen Mehrdeutigkeiten aufzulösen, wurden vom Unicode-Konsortium insgesamt vier verschiedene Unicode-Normalformen definiert: NFC und NFKC sowie NFD und NFKD.

Weiterführende Information hierzu finden sich in der englischen Wikipedia (Unicode equivalence) sowie im dem ausführlicheren Artikel des Unicode-Konsortiums über die Unicode Normalization Forms.

Last modified 15 years ago Last modified on 28/04/09 16:39:32
Note: See TracWiki for help on using the wiki.