Vorbemerkung: Die folgenden Ausführungen beschreiben die Struktur der Unicode-Datenbank näher. Eine lokale Darstellung aller Elemente der basic multilingual plane in Form von Html-Seiten liegt als Unicode-Datenbank vor.
Diese doppelte Klassifikation ist zunächst nachvollziehbar: Jede Kultur mag ihre eigenen Zahl- und Satzzeichen verwenden, sie sollten innerhalb des von dieser Kultur genutzten Bereiches von Codepunkten dargestellt werden. Die klassischen Fonts basieren auf Ein-Byte-Codierungen, also waren gewisse, eher unwesentliche Zeichen ausgeschlossen. Wird der traditionelle Zeichensatz in das Unicode-System übernommen und ist der nachfolgende Block bereits belegt, so fehlen bislang ausgeschlossene Zeichen weiterhin. Für diese hat sich im Web-Zeitalter auch ein Bedarf für die Darstellung auf Html-Seiten entwickelt. Die noch Mitte der 90er übliche Technik des Einbindens von winzigen Grafiken für Sonderzeichen ist heutzutage nicht mehr vermittelbar. Also wurden neue Blöcke hinzugefügt, die sich eher an inhaltlichen Kriterien orientieren oder Platz für einzelne, bislang ausgeschlossene Zeichen aus verschiedenen Kulturen bieten. Es gibt deshalb immer wieder Symbole, die an eher unerwarteten Stellen zu finden sind: Das Zeichen ﬩ mit der Bezeichnung HEBREW LETTER ALTERNATIVE PLUS SIGN findet sich im Block 'Alphabetic Presentation Forms', gehört jedoch nicht, wie die meisten anderen Codepunkte dieses Blocks, zur Kategorie der 'Letter', sondern ist aus inhaltlichen Gründen der Kategorie Symbol, Math zugeordnet.
Diese beiden Ordnungsprinzipien in Kombination mit der historischen Entwicklung der Unicode-Darstellung erschweren es, thematisch zusammengehörende Zeichen zu finden. Übliche Darstellungen wie die offiziellen PDF-Charts verwenden die Blöcke als Gliederung. Sucht man jedoch nach allen Symbolen, die für mathematische Darstellungen nutzbar sind, so beschränken sich diese weder auf einen einzigen Block oder eine einzige Kategorie, sondern enthalten manche Blöcke vollständig, aus anderen Blöcken jedoch nur einzelne Zeichen, manche Zeichen gehören zur Kategorie Sm (Symbol, Math), andere sind bei Base Latin und der Kategorie Symbol, Modifier zu finden. Die lokale Darstellung der Unicode-Datenbank enthält deshalb zunächst die zwei Listen von Blocknamen sowie von Kategorien. Zu jedem Block gibt es eine Tabelle, welche alle Zeichen dieses Blocks darstellt. Ferner gibt es zu jeder Kategorie ebenfalls eine Tabelle, die alle zu dieser Kategorie gehörenden Zeichen enthält. Aufgrund dieser Struktur taucht jeder Codepunkt in zwei verschiedenen Tabellen mit seinem Symbol, der numerischen sowie der sprachlichen Darstellung auf. Beide Seiten sind direkt miteinander verlinkt. Die Blockdarstellung enthält zu jedem Codepunkt den Kurznamen der Kategorie als Link zu dieser, von der Kategorie kann zurück zum Block dieses Zeichens gewechselt werden. Ferner handelt es sich um reines Html, es wurde ausschließlich die Darstellung in der Form &#x[Unicode-Word aus vier Zeichen]; verwendet. Damit läßt sich prüfen, ob Zeichen in einem bestimmten Browser sichtbar sind.
Da dies noch nicht sämtliche Klassifikationen erfaßt, wird diese doppelte und disjunkte Ordnung ergänzt durch zusätzliche, additive Properties. Diese sammeln bsp. alle Zeichen, die für die Hexadezimaldarstellung von Codepunkten erlaubt sind oder listen weitere Zeichen auf, die zu mathematischen Zwecken genutzt werden. Ein Zeichen kann in keiner dieser Properties oder in mehreren auftauchen, der Codepunkt 94 (^) ist sowohl unter Diacritic als auch unter Other_Math gelistet. Properties, die mit 'Other' beginnen, bilden zusammen mit den offiziellen Kategorien passenden Namens einzelne DerivedProperties. Auf deren Auflistung in weiteren Tabellen wurde allerdings verzichtet, da die Namenskombinationen selbsterklärend sind.
Q Q Q QAls Font wurde Arial, Times New Roman, Wide Latin und Comic Sans zugewiesen. Für grundlegende Zeichen oder für den englischen Sprachraum ist diese Unterscheidung in Character und Glyphe unproblematisch. In anderen Kulturen einschließlich der europäischen Sprachen gestaltet sich das Verhältnis komplexer. Ein deutsches ö oder ein französisches Ç kann dem Zeichensatz als ein einzelnes Zeichen neu hinzugefügt werden. Ebenso ist es jedoch denkbar, diese Kombinationszeichen in ihre beiden Bestandteile o und Diaeresis aufzulösen, zu beiden Bruchstücken eigene Codepunkte zu definieren und die Diaeresis als ein 'überschreibendes Zeichen ohne horizontalen Vorschub' zu definieren. Das Ergebnis erscheint in derselben Bildschirmdarstellung, beide Prinzipien führen jedoch zu unterschiedlichen Konsequenzen. Werden ö usw. als eigenständige Codepunkte definiert, so vergrößert sich die Zahl der belegten Codepunkte, es können nur jene Zeichen mit Diaeresis dargestellt werden, für welche dies explizit definiert wurde. Wird die Diaeresis dagegen als selbständiges Zeichen eingefügt, so kann sie mit beliebigen anderen Zeichen kombiniert werden, so daß auch ein Ausdruck g̈ ad hoc genutzt werden kann. Gleichzeitig wird nun jedoch die Erzeugung der Ausgabe komplexer, da solche Kombinationszeichen keinen horizontalen Platz verbrauchen.
Tatsächlich sind im Unicode-Standard drei Möglichkeiten definiert: Diverse der bsp. auf Tastaturen angezeigten Kombinationszeichen ö, Ä usw. wurden direkt übernommen und sind in Latin-1 Supplement und analogen Zeichensätzen zu finden. Dann gibt es die diakritischen Zeichen als eigenständige Zeichen mit horizontalem Vorschub, zu finden im Spacing Modifier Letter - Block bzw. zur Kategorie Letter, Modifier gehörend. Zeichen, die in 'modifizierenden' Blöcken oder Kategorien enthalten sind, folgen bsp. relativ nah auf das vorangehende Zeichen und modifizieren dieses, werden jedoch nicht über oder unter dem vorgehenden Zeichen dargestellt. Dies leisten erst Zeichen, die im Block Combining Diacritical Marks oder in der Kategorie Mark, Nonspacing (Mn) zu finden sind. 'Nonspacing' stellt explizit sicher, daß kein horizontaler Zeilenvorschub erfolgt.
Ein Beispiel: Der Kleinbuchstabe a mit verschiedenen Versionen des Circumflex Accent:
Code | Ergebnis | Name | Block | Kategorie |
---|---|---|---|---|
a^ | a^ | Circumflex Accent | Basic Latin | Symbol, Modifier |
aˆ | aˆ | Modifier Letter Circumflex Accent | Spacing Modifier Letters | Letter, Modifier |
â | â | Combining Circumflex Accent | Combining Diacritical Marks | Mark, Nonspacing |
a^ | a^ | Fullwidth Circumflex Accent | Halfwidth and Fullwidth Forms | Symbol, Modifier |
â | â | Latin small Letter a with Circumflex | Latin-1 Supplement | Letter, Lowercase |
Die letzte Zeile enthält den meist verwendeten Kombinationsbuchstaben. In allen anderen Zeilen sind zwei Codepunkte notiert, deren Formatierung sich aus den Unicode-Eigenschaften ergibt. In Xml könnten diese Zeichen auch direkt eingefügt werden, ohne daß der Umweg über ein Character-Entity notwendig wäre. So kann bsp. in VB.NET mit "a" & Convert.ToChar(770) ein String erzeugt und in eine Datei geschrieben werden, welcher der obigen Darstellung in der dritten Zeile entspricht (&H0302 = 770).
In der Unicode-Datenbank werden alle Zeichen der Kategorie Mn mit einem vorgestellten 'a' ausgegeben, ansonsten würde nichts angezeigt werden. Ein vorgestelltes Leerzeichen führt nicht zwingend zu einer Anzeige, mit einem vorgestellten geschützten Leerzeichen ( ) gelingt dies jedoch.
Version | Datum | hinzugefügte Codepunkte |
---|---|---|
1.1 | Juni 1993 | 33.979 |
2.0 | Juli 1996 | 144.521 |
2.1 | Mai 1998 | 2, darunter € |
3.0 | September 1999 | 10.307 |
3.1 | März 2001 | 44.978 |
3.2 | März 2002 | 1.016 |
4.0 | April 2003 | 1.226 |
∑ | 236.029 |
Diese Zahlen, der DerivedAge.txt entnommen, weisen teilweise minimale, teilweise erhebliche Differenzen zu den selbst ermittelten Werten auf. So ergibt sich aus der Vorgabe eine Zahl von 47.402 Codepunkten bis 2.1, hierbei scheinen jedoch FFFE/FFFF mitberücksichtigt worden zu sein. In der UnicodeData.txt tauchen beide Zeichen nicht auf. Damit führt die lokale Version diese als Cn, so daß sich 47.400 Codepunkte bis 2.1 ergeben. Ferner gehört Supplementary Private Use Area-A mit Start F0000 laut der DerivedAge zur Version 2.0. Die UnicodeData.txt von 2.1, die immer die tatsächlich definierten Daten enthält, kennt diesen Wert jedoch nicht, er taucht erst in der Version 3.0 auf. Damit enthält die Version 2.1 den eigenen Auswertungen zufolge keine Codepunkte oberhalb FFFF.
Der Font 'Arial Unicode MS', der bsp. in Office2000 enthalten ist, basiert auf Unicode-2.1 und zeigt diese Zeichenmenge auch vollständig an. Diese Version wird ebenfalls von Opera und FireFox 0.9 dargestellt. Ab der Version 3.0 werden nur noch vereinzelt Zeichen ausgegeben. Folglich dürften Zeichen der Version 2.1 mit den meisten Browsern darstellbar sein, alle Zeichen späterer Versionen sind bislang nur bedingt einsetzbar.