| # Das Unicode-System
| Allgemeines zu Unicode Aufbau des Unicode-Systems

## Allgemeines zu Unicode

Unicode ist ein System, in dem die Zeichen oder Elemente aller bekannten Schriftkulturen und Zeichensysteme festgehalten werden. Durch dieses System wird es möglich, einem Computer "weltweit" zu sagen, welches Zeichen man dargestellt bekommen will. Voraussetzung ist natürlich, dass der Computer bzw. das ausgeführte Programm das Unicode-System unterstützt.

Unicode strebt die möglichst vollständige Erfassung aller bekannten Zeichen aus gegenwärtigen und vergangenen Schriftkulturen an. Die Zeichen werden nach Klassen katalogisiert und erhalten eine Zeichennummer (Code). Alle nur erdenklichen Zeichen und Zeichensorten werden erfasst. Auch für Steuerzeichen wie Silbentrennzeichen, erzwungene Leerzeichen oder Tabulator-Zeichen gibt es Nummern. Die Zeichen mathematischer Formeln fehlen ebensowenig wie die Silben- oder Wortzeichen fernöstlicher Schriftkulturen. Auch Einzelteile von Zeichen, so genannte diakritische Zeichen wie etwa die Doppelpunkte über den deutschen Umlauten, haben einen eigenen Code. Zeichen lassen sich auch dynamisch kombinieren - so gibt es zwar natürlich auch ein deutsches "ä", aber der gleiche Buchstabe lässt sich auch aus "a" und dem Element für Doppelpunkt über dem Zeichen erzeugen.

Neben der bloßen Adressierung eines Zeichens oder Elements ist im Unicode-System für jedes Zeichen auch ein Set von Eigenschaften definiert. Zur Eigenschaft eines Zeichens gehört z.B. die Schreibrichtung (bei arabischen Zeichen etwa ist die Schreibrichtung von rechts nach links). Insgesamt stecken hinter dem Unicode-System unzählige Forschungsergebnisse der weltweiten Sprachwissenschaft.

Das Unicode-Konsortium, das 1991 gegründet wurde und aus Linguisten und anderen Fachleuten besteht, ermittelt die aufzunehmenden Zeichen. Die vergebenen Zeichencodes haben verbindlichen Charakter. Seit Version 2.0 ist das Unicode-System auch mit der internationalen Norm ISO/IEC 10646 synchronisiert. Das ist insofern wichtig, als HTML seit Version 4.0 und auch XML ab Version 1.0 auf der Norm ISO/IEC 10646 aufsetzen. Wenn Sie also wissen wollen, wie man ein bestimmtes Zeichen in HTML oder XML notieren soll, müssen Sie in den Unicode-Zeichentabellen nachsehen, welche Zeichennummer das gewünschte Zeichen hat. Anschließend können Sie das gewünschte Zeichen durch eine numerische Notation wie z.B. `&#9871;` (dezimale Schreibweise) oder `&#x268F;` (hexadezimale Schreibweise mit `x`) im Quelltext der HTML- oder XML-Datei notieren.

Die Zeichennummern der von Unicode erfassten Zeichen wurden zuerst ausschließlich durch eine zwei Byte lange Zahl ausgedrückt. Auf diese Weise lassen sich bis zu 65536 verschiedene Zeichen in dem System unterbringen (2 Byte = 16 Bit = 216 Kombinationsmöglichkeiten). In der Unicode-Version 3.0 vom September 1999 wurden bereits 49.194 Zeichen aus aller Welt aufgelistet. Die Version 3.1 vom März 2001 durchbrach mit 94.140 Zeichen die Zwei-Byte-Grenze. Die Version 4.0 vom April 2003 umfasst 96.382 Zeichen, die Unterversion 4.1.0 fügt noch einmal 1.273 Zeichen hinzu. Das Zwei-Byte-Schema, im Unicode-System als Basic Multilingual Plane (BMP) bezeichnet, wird deshalb von einem Vier-Byte-Schema abgelöst, wodurch sich die beruhigende Anzahl von 4.294.967.296 Zeichen (232 Kombinationsmöglichkeiten für Bits) adressieren lässt.

Informationen zum Unicode-Konsortium finden Sie im Web auf der Homepage des Unicode-Konsortiums.

Das große Problem mit Unicode ist eigentlich nur, wie all die vielen Zeichen an einem Computer dargestellt werden sollen. Denn Unicode definiert nur Zeichennummern und Eigenschaften von Zeichen, aber es enthält ebenso wenig wie Codetabellen herkömmlicher Zeichenkodierungen Angaben darüber, wie das Zeichen darzustellen ist. Dazu sind am Computer Schnittstellen wie Schriftarten erforderlich. Die klassischen Computerschriftarten sind dazu jedoch nicht geeignet, da sie sich weitgehend an bestimmten Kodierungen mit eingeschränktem Zeichenvorrat orientieren. Neue, Unicode-orientierte Schriftarten verbreiten sich allmählich. In Verbindung mit modernen Betriebssystemen und Anwendungen unterstützen solche Schriftarten zumindest die zwei-byte-breite Adressierung, also den BMP-Anteil des Unicode-Systems.

## Aufbau des Unicode-Systems

Bei neuen Unicode-Versionen wird das Buch The Unicode Standard, herausgegeben vom Unicode-Konsortium, neu aufgelegt. Im internationalen Buchhandel ist dieses Buch erhältlich. Darin sind alle Zeichen, Zeichennummern, Zeichenklassen usw. genau aufgeschlüsselt und dargestellt. Dieses Buch ist das verbindliche Normwerk. Auf den Web-Seiten des Unicode-Konsortiums finden sich zum schnellen Nachschlagen PDF-Dateien mit den einzelnen Codetabellen. Die Verweise in der Tabelle weiter unten führen direkt zu den entsprechenden PDF-Dateien. Um diese Dateien betrachten zu können, benötigen Sie ein gesondertes PDF-Leseprogramm wie beispielsweise den Adobe Reader.

Das Unicode-System ist in Zahlenbereiche aufgeteilt. Die Zahlen selbst werden in der Form U+XXXX notiert. Das U steht für Unicode, und die X für je eine hexadezimale Ziffer. Zeichennummern sind in diesen Tabellen also hexadezimal dargestellt. Falls Sie für die Notation eines oder mehrerer Zeichen aus dem Unicode-Bereich in HTML oder XML eine dezimale Darstellung verwenden wollen, können Sie den Dezimal/Hexadezimal-Umrechner benutzen.

Die einzelnen Zeichen im Unicode-System sind nicht wahllos angeordnet. Das gesamte System ist in Zeichenbereiche (engl. blocks, Blöcke) aufgeteilt. Die Zeichenbereiche spiegeln jeweils eine bestimmte Schriftkultur oder ein Set von Sonderzeichen wider.

Im folgenden werden die einzelnen Unicode-Zeichenbereiche aufgelistet. Bei jedem Zeichenbereich finden Sie einen Verweis. Der Verweis führt jeweils zu einer PDF-Datei auf der Homepage des Unicode-Konsortiums. Darauf finden Sie zu dem betreffenden Zeichenbereich Hinweise sowie eine grafische Tabelle mit Abbildungen der einzelnen Zeichen des Bereichs und der zugehörigen Unicode-Zeichennummern (hexadezimal).

### BMP-Teil des Unicode-Systems (mit zwei Byte breiten Zeichen darstellbar):

Name des Zeichenbereichs | Zeichenbereich (hexadezimale Angabe) | Link zur Codetabelle
--- | --- | ---
Basic Latin (ASCII-Codetabelle) | U+0000 bis U+007F | Codetabelle mit grafischer Zeichendarstellung
Latin-1 (Codetabelle von ISO 8859-1) | U+0080 bis U+00FF | Codetabelle mit grafischer Zeichendarstellung
Latin Extended-A | U+0100 bis U+017F | Codetabelle mit grafischer Zeichendarstellung
Latin Extended-B | U+0180 bis U+024F | Codetabelle mit grafischer Zeichendarstellung
IPA Extensions | U+0250 bis U+02AF | Codetabelle mit grafischer Zeichendarstellung
Spacing Modifier Letters | U+02B0 bis U+02FF | Codetabelle mit grafischer Zeichendarstellung
Combining Diacritical Marks | U+0300 bis U+036F | Codetabelle mit grafischer Zeichendarstellung
Greek | U+0370 bis U+03FF | Codetabelle mit grafischer Zeichendarstellung
Cyrillic | U+0400 bis U+04FF | Codetabelle mit grafischer Zeichendarstellung
Armenian | U+0530 bis U+058F | Codetabelle mit grafischer Zeichendarstellung
Hebrew | U+0590 bis U+05FF | Codetabelle mit grafischer Zeichendarstellung
Arabic | U+0600 bis U+06FF | Codetabelle mit grafischer Zeichendarstellung
Devanagari | U+0900 bis U+097F | Codetabelle mit grafischer Zeichendarstellung
Bengali | U+0980 bis U+09FF | Codetabelle mit grafischer Zeichendarstellung
Gurmukhi | U+0A00 bis U+0A7F | Codetabelle mit grafischer Zeichendarstellung
Gujarati | U+0A80 bis U+0AFF | Codetabelle mit grafischer Zeichendarstellung
Oriya | U+0B00 bis U+0B7F | Codetabelle mit grafischer Zeichendarstellung
Tamil | U+0B80 bis U+0BFF | Codetabelle mit grafischer Zeichendarstellung
Telugu | U+0C00 bis U+0C7F | Codetabelle mit grafischer Zeichendarstellung
Kannada | U+0C80 bis U+0CFF | Codetabelle mit grafischer Zeichendarstellung
Malayalam | U+0D00 bis U+0D7F | Codetabelle mit grafischer Zeichendarstellung
Thai | U+0E00 bis U+0E7F | Codetabelle mit grafischer Zeichendarstellung
Lao | U+0E80 bis U+0EFF | Codetabelle mit grafischer Zeichendarstellung
Tibetan | U+0F00 bis U+0FBF | Codetabelle mit grafischer Zeichendarstellung
Georgian | U+10A0 bis U+10FF | Codetabelle mit grafischer Zeichendarstellung
Hangul Jamo | U+1100 bis U+11FF | Codetabelle mit grafischer Zeichendarstellung
Latin Extended Additional | U+1E00 bis U+1EFF | Codetabelle mit grafischer Zeichendarstellung
Greek Extended | U+1F00 bis U+1FFF | Codetabelle mit grafischer Zeichendarstellung
General Punctuation | U+2000 bis U+206F | Codetabelle mit grafischer Zeichendarstellung
Superscripts and Subscripts | U+2070 bis U+209F | Codetabelle mit grafischer Zeichendarstellung
Currency Symbols | U+20A0 bis U+20CF | Codetabelle mit grafischer Zeichendarstellung Hier ist auch das Eurozeichen-Symbol mit dabei. Es hat den Wert `U+20AC`. In HTML dezimal notiert: `&#8364;` oder einfacher: `&euro;`.
Combining Diacritical Marks for Symbols | U+20D0 bis U+20FF | Codetabelle mit grafischer Zeichendarstellung
Letterlike Symbols | U+2100 bis U+214F | Codetabelle mit grafischer Zeichendarstellung
Number Forms | U+2150 bis U+218F | Codetabelle mit grafischer Zeichendarstellung
Arrows | U+2190 bis U+21FF | Codetabelle mit grafischer Zeichendarstellung
Mathematical Operators | U+2200 bis U+22FF | Codetabelle mit grafischer Zeichendarstellung
Miscellaneous Technical | U+2300 bis U+23FF | Codetabelle mit grafischer Zeichendarstellung
Control Pictures | U+2400 bis U+243F | Codetabelle mit grafischer Zeichendarstellung
Optical Character Recognition | U+2440 bis U+245F | Codetabelle mit grafischer Zeichendarstellung
Enclosed Alphanumerics | U+2460 bis U+24FF | Codetabelle mit grafischer Zeichendarstellung
Box Drawing | U+2500 bis U+257F | Codetabelle mit grafischer Zeichendarstellung
Block Elements | U+2580 bis U+259F | Codetabelle mit grafischer Zeichendarstellung
Geometric Shapes | U+25A0 bis U+25FF | Codetabelle mit grafischer Zeichendarstellung
Miscellaneous Symbols | U+2600 bis U+26FF | Codetabelle mit grafischer Zeichendarstellung
Dingbats | U+2700 bis U+27BF | Codetabelle mit grafischer Zeichendarstellung
CJK Symbols and Punctuation | U+3000 bis U+303F | Codetabelle mit grafischer Zeichendarstellung
Hiragana | U+3040 bis U+309F | Codetabelle mit grafischer Zeichendarstellung
Katakana | U+30A0 bis U+30FF | Codetabelle mit grafischer Zeichendarstellung
Bopomofo | U+3100 bis U+312F | Codetabelle mit grafischer Zeichendarstellung
Hangul Compatibility Jamo | U+3130 bis U+318F | Codetabelle mit grafischer Zeichendarstellung
Kanbun | U+3190 bis U+319F | Codetabelle mit grafischer Zeichendarstellung
Enclosed CJK Letters and Months | U+3200 bis U+32FF | Codetabelle mit grafischer Zeichendarstellung
CJK Compatibility | U+3300 bis U+33FF | Codetabelle mit grafischer Zeichendarstellung
CJK Unified Ideographs | U+4E00 bis U+9FA5 | Codetabelle mit grafischer Zeichendarstellung
Hangul Syllables | U+AC00 bis U+D7A3 | Codetabelle mit grafischer Zeichendarstellung
High Surrogates | U+D800 bis U+DB7F |
Private Use High Surrogates | U+DB80 bis U+DBFF |
Low Surrogates | U+DC00 bis U+DFFF |
Private Use Area | U+E000 bis U+F8FF |
CJK Compatibility Ideographs | U+F900 bis U+FAFF | Codetabelle mit grafischer Zeichendarstellung
Alphabetic Presentation Forms | U+FB00 bis U+FB4F | Codetabelle mit grafischer Zeichendarstellung
Arabic Presentation Forms-A | U+FB50 bis U+FDFF | Codetabelle mit grafischer Zeichendarstellung
Combining Half Marks | U+FE20 bis U+FE2F | Codetabelle mit grafischer Zeichendarstellung
CJK Compatibility Forms | U+FE30 bis U+FE4F | Codetabelle mit grafischer Zeichendarstellung
Small Form Variants | U+FE50 bis U+FE6F | Codetabelle mit grafischer Zeichendarstellung
Arabic Presentation Forms-B | U+FE70 bis U+FEFF | Codetabelle mit grafischer Zeichendarstellung
Halfwidth and Fullwidth Forms | U+FF00 bis U+FFEF | Codetabelle mit grafischer Zeichendarstellung
Specials | U+FFF0 bis U+FFFF | Codetabelle mit grafischer Zeichendarstellung

### Erweiterter Bereich des Unicode-Systems (mit vier Byte breiten Zeichen darstellbar):

Name des Zeichenbereichs | Zeichenbereich (hexadezimale Angabe) | Link zur Codetabelle
--- | --- | ---
Linear B Syllabary | U+10000 bis U+1007F | Codetabelle mit grafischer Zeichendarstellung
Linear B Ideograms | U+10080 bis U+100FF | Codetabelle mit grafischer Zeichendarstellung
Aegean Numbers | U+10100 bis U+1013F | Codetabelle mit grafischer Zeichendarstellung
Ancient Greek Numbers | U+10140 bis U+1018F | Codetabelle mit grafischer Zeichendarstellung
Old Italic | U+10300 bis U+1032F | Codetabelle mit grafischer Zeichendarstellung
Gothic | U+10330 bis U+1034F | Codetabelle mit grafischer Zeichendarstellung
Ugaritic | U+10380 bis U+1039F | Codetabelle mit grafischer Zeichendarstellung
Old Persian | U+103A0 bis U+103DF | Codetabelle mit grafischer Zeichendarstellung
Deseret | U+10400 bis U+1044F | Codetabelle mit grafischer Zeichendarstellung
Shavian | U+10450 bis U+1047F | Codetabelle mit grafischer Zeichendarstellung
Osmanya | U+10480 bis U+104AF | Codetabelle mit grafischer Zeichendarstellung
Cypriot Syllabary | U+10800 bis U+1083F | Codetabelle mit grafischer Zeichendarstellung
Kharoshthi | U+10A00 bis U+10A5F | Codetabelle mit grafischer Zeichendarstellung
Byzantine Musical Symbols | U+1D000 bis U+1D0FF | Codetabelle mit grafischer Zeichendarstellung
Musical Symbols | U+1D100 bis U+1D1FF | Codetabelle mit grafischer Zeichendarstellung
Ancient Greek Musical Notation | U+1D200 bis U+1D24F | Codetabelle mit grafischer Zeichendarstellung
Tai Xuan Jing Symbols | U+1D300 bis U+1D35F | Codetabelle mit grafischer Zeichendarstellung
Mathematical Alphanumeric Symbols | U+1D400 bis U+1D7FF | Codetabelle mit grafischer Zeichendarstellung
CJK Unified Ideographs Extension B | U+20000 bis U+2A6D6 | Codetabelle mit grafischer Zeichendarstellung
CJK Compatibility Ideographs Supplement | U+2F800 bis U+2FA1F | Codetabelle mit grafischer Zeichendarstellung
Tags | U+E0000 bis U+E007F | Codetabelle mit grafischer Zeichendarstellung
Variation Selectors Supplement | U+E0100 bis U+E01EF | Codetabelle mit grafischer Zeichendarstellung
Supplementary Private Use Area-A | U+F0000 bis U+E01EF |
Supplementary Private Use Area-B | U+100000 bis U+10FFFF |

| Downloadbare Schriftarten
| Zeichenkodierungen (ISO-8859-Familie und andere)

© 2007 Impressum