www.wikidata.de-de.nina.az
Der Unicode Standard kennt unterschiedliche Normalformen von Unicode Zeichenketten und Algorithmen zur Normalisierung also zur Uberfuhrung einer Zeichenkette in eine solche Normalform Zwei unterschiedliche Codierungen fur n ein n mit TildeFur viele Zeichen gibt es mehrere Moglichkeiten sie als Kette von Unicode Zeichen darzustellen z B das o als solches oder als o mit Trema Ein einfacher Byte Vergleich genugt daher nicht denn er konnte Unterschiede in der Codierung erkennen die aber keine Unterschiede im Text bedeuten Um festzustellen ob zwei Zeichenketten den gleichen Text reprasentieren ist es daher hilfreich beide in die gleiche Normalform zu uberfuhren Inhaltsverzeichnis 1 Normalformen 1 1 Kanonische Aquivalenz 1 2 Kompatible Aquivalenz 2 Normalisierung 2 1 Algorithmus 3 Eigenschaften 3 1 Stabilitat 4 Anwendungen 5 Siehe auch 6 Quellen 7 Einzelnachweise 8 WeblinksNormalformen BearbeitenEs gibt vier Normalformen NFD die kanonische Dekomposition NFC die kanonische Dekomposition gefolgt von einer kanonischen Komposition NFKD die kompatible Dekomposition NFKC die kompatible Dekomposition gefolgt von einer kanonischen Komposition Die 4 Normalformen kanonische Aquivalenz kompatible Aquivalenzzerlegt NFD NFKDkombiniert NFC NFKCIn den zerlegten Formen NFD und NFKD werden alle Zeichen die sich auch mit Hilfe kombinierender Zeichen darstellen lassen zerlegt In den zusammengesetzten Formen NFC und NFKC wird ein einzelnes Zeichen fur eine Folge aus Grundzeichen und kombinierenden Zeichen gewahlt falls dies moglich ist Kanonische Aquivalenz Bearbeiten Wenn zwei Zeichenketten kanonisch aquivalent sind dann stellen sie exakt den gleichen Inhalt dar nur sind eventuell andere Folgen von Unicode Zeichen gewahlt Dass es mehrere Darstellungen gibt hat mehrere Grunde Fur viele Buchstaben mit diakritischen Zeichen definiert der Unicode Standard ein eigenes Zeichen Solche Zeichen lassen sich aber auch darstellen als der Grundbuchstabe gefolgt von einem kombinierenden diakritischen Zeichen Beispiel Der Buchstabe A existiert als eigenes Zeichen U 00C4 kann aber auch als Folge U 0041 U 0308 kodiert werden Folgen auf ein Zeichen verschiedene kombinierende Zeichen die an unterschiedlichen Stellen des Grundbuchstabens stehen so spielt ihre Reihenfolge fur die Darstellung keine Rolle Sowohl U 0061 U 0308 U 0320 als auch U 0061 U 0320 U 0308 ergeben a Anderenfalls ist die Reihenfolge signifikant U 0061 U 0308 U 0304 ergibt ǟ U 0061 U 0304 U 0308 dagegen a Manche Zeichen sind doppelt im Standard enthalten etwa A das sowohl an der Position U 00C5 als Lateinischer Grossbuchstabe A mit Ring kodiert ist als auch zwecks Kompatibilitat mit alteren Zeichenkodierungen an der Stelle U 212B als Angstromzeichen 1 Kompatible Aquivalenz Bearbeiten Sind zwei Zeichenketten nur kompatibel aquivalent so stellen sie zwar den gleichen Inhalt dar allerdings kann die Darstellung leicht unterschiedlich sein Folgende Abweichungen konnen vorkommen Hoch Tiefgestellte Zeichen Die hochgestellte Ziffer 2 U 00B2 ist eine Kompatibilitatsvariante der Ziffer 2 ebenso die tiefgestellte U 2082 Andere Schriftart Der Grossbuchstabe Z mit Doppelstrich ℤ U 2124 entspricht dem gewohnlichen Z nur liegt er in einer anderen Schriftart vor Initiale mediale finale isolierte Form eines Zeichens Obwohl fur Arabisch in Unicode nur ein Zeichen fur jeden Buchstaben vorgesehen ist auch wenn er je nach Stellung eine andere Form hat sind dennoch auch diese einzelnen Formen als eigene Zeichen kodiert Diese Zeichen sind als entsprechende Kompatibilitatsvarianten des im Unicode Standard bevorzugten Zeichens gekennzeichnet Ohne Umbruch Einige Zeichen unterscheiden sich nur bei Anwendung des Unicode Zeilenumbruch Algorithmus voneinander So ist das geschutzte Leerzeichen nur ein Leerzeichen das keinen Umbruch zulasst Eingekreist Der Unicodeblock Umschlossene alphanumerische Zeichen und weitere Blocke enthalten viele eingekreiste Zeichen etwa die eingekreiste Ziffer 1 U 2460 die eine Variante der gewohnlichen 1 ist Bruch Bruche wie etwa U 00BD konnen auch mit Hilfe des Bruchstrichs U 2044 geschrieben werden andere Breite oder Ausrichtung quadratisch Die ostasiatische Typographie kennt Zeichen in unterschiedlichen Breiten und solche die im vertikalen Layout um 90 gedreht gegenuber der ublichen Darstellung erscheinen Sonstiges Einige Normalisierungen fallen in keine dieser Kategorien darunter die Auflosung von Ligaturen Normalisierung BearbeitenDie Uberfuhrung einer Zeichenkette in eine der vier Normalformen nennt man Normalisierung Um diese durchzufuhren definiert der Unicode Standard mehrere Eigenschaften Decomposition Mapping gibt zu jedem Zeichen an in welche Zeichenfolge es zerlegt werden kann falls dies moglich ist Die Eigenschaft nennt sowohl die kanonischen als auch die kompatiblen Zerlegungen Decomposition Type gibt an ob es sich bei der Zerlegung um eine kanonische oder eine kompatible Zerlegung handelt Im letzteren Fall wird auch angegeben welcher Art diese ist Canonical Combining Class kurz ccc ist eine Zahl zwischen 0 und 254 die fur kombinierende Zeichen in etwa angibt an welcher Stelle des Grundzeichens sie stehen Haben zwei kombinierende Zeichen unterschiedliche Werte so interagieren sie grafisch nicht miteinander und konnen vertauscht werden ohne dass sich die Darstellung andert Ein Zeichen besitzt die Full Composition Exclusion Eigenschaft falls es zwar eine kanonische Zerlegung besitzt aber in den zusammengesetzten Normalformen dennoch nicht verwendet werden soll Hangul Syllable Type wird bei fur die Zerlegung koreanischer Silbenblocke verwendet Algorithmus Bearbeiten Zur Uberfuhrung in eine der Normalformen fuhrt man folgende Schritte durch Im ersten Schritt wird die Zeichenkette vollstandig zerlegt Zu jedem Zeichen wird ermittelt ob eine Zerlegung existiert und es wird gegebenenfalls durch diese ersetzt Dieser Schritt ist wiederholt auszufuhren da die Zeichen in die ein Zeichen zerlegt werden selbst wieder zerlegbar sein konnen Fur die kanonischen Normalformen werden nur kanonische Zerlegungen verwendet bei kompatiblen Normalisierungen sowohl die kanonischen als auch die kompatiblen Die Zerlegung koreanischer Silbenblocke in einzelne Jamo wird dabei von einem gesonderten Algorithmus durchgefuhrt Anschliessend werden die kombinierenden Zeichen die zu dem gleichen Grundzeichen gehoren wie folgt sortiert Folgen zwei Zeichen A und B aufeinander fur die gilt ccc A gt ccc B und ccc B gt 0 so werden diese beiden Zeichen vertauscht Dieser Schritt wird so lange wiederholt bis es keine benachbarten Zeichenpaare mehr gibt die vertauscht werden konnen Fur die zusammengesetzten Normalformen folgt ein dritter Schritt die kanonische Komposition Dazu wird beginnend mit dem zweiten Zeichen fur jedes Zeichen C gepruft ob ein vorhergehendes Zeichen L folgende Eigenschaften besitzt ccc L 0 Fur alle Zeichen A zwischen L und C gilt 0 lt ccc A lt ccc C Es gibt ein Unicode Zeichen P das nicht als Full Composition Exclusion gekennzeichnet ist und die kanonische Zerlegung lt L C gt besitzt In diesem Fall wird L durch P ersetzt und C entfernt Um aus Folgen von Jamo wieder Silbenblocke mit eigenen Unicode Codepunkten zu erhalten wird der Algorithmus zur Zerlegung der Silbenblocke umgekehrt angewendet Eigenschaften BearbeitenText der nur aus ASCII Zeichen besteht ist schon in jeder der Normalformen Text aus Latin 1 Zeichen in NFC Die Verkettung zweier Zeichenketten in Normalform ist manchmal nicht in Normalform ebenso kann ein Austausch von Klein und Grossbuchstabe die Normalform zerstoren Alle Normalisierungen sind idempotent wendet man sie also ein zweites Mal an so bleibt die Zeichenkette wie sie ist Jede Abfolge von Normalisierungen kann durch eine einzige Normalisierung ersetzt werden das Ergebnis ist eine kompatible Normalisierung falls eine der beteiligten Normalisierungen kompatibel ist sonst eine kanonische Der Unicode Standard stellt einige Eigenschaften zur Verfugung dank denen effizient getestet werden kann ob eine gegebene Zeichenkette in Normalform vorliegt oder nicht Stabilitat Bearbeiten Zum Zwecke der Abwartskompatibilitat wird garantiert dass eine Zeichenkette die in einer Normalform vorliegt auch in kunftigen Versionen des Unicode Standards in Normalform vorliegen wird sofern sie keine bisher nicht zugewiesenen Zeichen enthalt 2 Ab der Version 4 1 wird zusatzlich garantiert dass sich auch die Normalisierung selbst nicht andert Davor hatte es einige Korrekturen gegeben die dazu fuhrten dass manche Zeichenketten in unterschiedlichen Versionen unterschiedliche Normalformen besassen Fur Anwendungen die auch uber diese Versionsgrenze hinweg absolute Stabilitat benotigen gibt es einfache Algorithmen um zwischen den Normalisierungen zu wechseln Anwendungen BearbeitenDie meistverbreitete Normalform in Anwendungen ist NFC Sie wird unter anderem vom World Wide Web Consortium fur XML und HTML empfohlen 3 und auch fur JavaScript verwendet 4 indem der Code vor weiterer Verarbeitung in diese Form uberfuhrt wird Die kanonischen Normalisierungen stellen sicher dass aquivalente Daten nicht in unterschiedliche Formen persistiert werden und gewahrleisten damit eine konsistente Datenhaltung Die kompatiblen Normalisierungen konnen etwa fur eine Suche verwendet werden bei der es auf kleine optische Differenzen nicht ankommen soll Allgemeine Normalisierungen konnen auf den Unicode Normalisierungen aufbauen Siehe auch BearbeitenUnicode Collation AlgorithmQuellen BearbeitenJulie D Allen et al The Unicode Standard Version 6 2 Core Specification The Unicode Consortium Mountain View CA 2012 ISBN 978 1 936213 07 8 online Mark Davis Ken Whistler Unicode Standard Annex 15 Unicode Normalization Forms Revision 37 Einzelnachweise Bearbeiten Ein Sonderfall ist das m das als U 03BC greek small letter mu und als U 00B5 micro sign kodiert ist Aus technischen Grunden Kompatibilitat mit dem ISO 8859 1 Zeichensatz ist hier keine kanonische sondern nur kompatible Aquivalenz moglich Unicode Character Encoding Stability Policy Normalization Stability Abgerufen am 1 Dezember 2012 Martin J Durst et al Character Model for the World Wide Web 1 0 Fundamentals online abgerufen am 1 Dezember 2012 ECMAScript Language Specification 5 1 Edition online abgerufen am 1 Dezember 2012Weblinks BearbeitenUnicode FAQ zur Normalisierung englisch Normalization Browser des ICU Projekts englisch Abgerufen von https de wikipedia org w index php title Normalisierung Unicode amp oldid 224052876