Hilfe zur Bedienung

  1. Was ist Unicode?
  2. Probleme der Kodierung der Charakter
    1. ASCII
    2. ANSI, Windows CP-1252
    3. ISO 8859
  3. Kodierung mittels Unicode
  4. Verschiedene Unicode-Formate
  5. Darstellung der Unicode-Zeichen
  6. Unicode in Domänennamen
  7. Referenzen

Was ist Unicode?

Unicode ist ein internationaler Standard, dessen Ziel es ist, einen Code für jedes grafische Zeichen oder Element aller bekannten Schriftkulturen und Zeichensysteme festzulegen. Er will das Problem der verschiedenen inkompatiblen Kodierungen in den unterschiedlichen Ländern beseitigen. In der Praxis war es oft unmöglich, verschiedene Sprachen im selben Text zu verwenden. Die Kodierungsverschläge werden vom Unicode Consortium be- bzw. erarbeitet. Seit seiner Version 2.0 ist der Unicode auf die internationale Norm ISO 10646 abgestimmt.

Probleme der Kodierung der Charakter

Um Buchstaben von einem digitalen System verarbeiten zu können, müssen sie kodiert werden, um es einfach zu sagen, muss ihnen eineindeutig eine Zahl zugewiesen werden, da Computer nur in Zahlen „denken“ können. Das ständige Problem der Kodierung besteht nun darin, wie umfangreich man den Wertebereich zur Kodierung anlegt, je größer der Wertebereich, um so mehr Zeichen lassen sich kodieren, aber um so mehr Speicherplatz wird benötigt. So hat man sich in der Anfangszeit der Rechentechnik auf eine 7- bzw. 8-Bit-Kodierung beschränkt. (Das Bit als kleinste Einheit in der Boolschen Algebra kann zwei Zustände abbilden, ein Byte stellt die Gruppierung von 8 Bit dar). Mit einer 7-Bit Kodierung lassen sich maximal 27 = 128, mit einer 8-Bit-Kodierung maximal 256 Zeichen kodieren.

ASCII

Der wichtigste 7-Bit-Zeichsatz ist der ASCII-Zeichsatz (ISO 646), allerdings ist es mit diesem Zeichsatz nicht einmal mehr möglich, die im Deutschen gebräuchlichen Umlaute und andere westliche Sonderzeichen zu kodieren.

ANSI, Windows CP-1252

Mit der Einführung von Windows 3.x, Windows 95 etc. wurde der Versuch unternommen, die wichtigsten westlichen Sprachen zu unterstützen. Dazu wurde der Charakterraum auf 256 (8 Bit) erhöht, was technisch zu keinem größerem Aufwand bei der Kodierung führt. Die unteren 128 Charakter sind identisch zu ASCII. Die in den europäischen Sprachen verwendeten Sonderzeichen liegen in der oberen Hälfte. Allerdings ist ANSI auch zu nichts kompatibel, die im Bereich 128–159 liegenden ANSI-Zeichen werden nicht vom ISO 8859-1 (Latin-1) übernommen. Windows brauchte natürlich noch weitere Varianten, z.B. CP-1255 für eine hebräische Unterstützung. Die Inkompatibilität blieb, Japaner und Deutsche könnten wieder nicht in ihren natürlichen Sprachen kommunizieren.

ISO 8859

Um dem Dilemma mit ISO 646 beizukommen, definiert ISO 8859 den Bereich 160–255, d.h. nicht den von den Windows-Varianten CP-xxxx belegten Bereich 128–159. So fehlen hier u.a. einige typografisch wichtige Zeichen. Aber auch ISO 8859 kann wie ANSI natürlich das Problem der Internationalität nicht lösen.

Kodierung mittels Unicode

Der einzige Ausweg bleibt ISO 10646, Unicode. Auf 16 Ebenen (planes) zu 65.536 Charakter lassen sich wahrscheinlich alle denkbaren Charaker definieren. Dazu werden aber im Extremfall 4 Byte (= 32 Bit) Speicherplatz pro Charakter benötigt.

Die Ebene 0 („Basic Multilingual Plane“) umfasst die noch gesprochenen Sprachen, u.a. ca. 31.000 Charakter für das Chinesische, Japanische und Koreanische. Weiterhin enthält Ebene 0 u.a. Steuerzeichen, typografische, mathematische, kaufmännische und technische Sonderzeichen. Zusätzlich enthält diese Ebene einen Bereich für die Definition von ca. 6000 nutzerdefinierten Charaktern. Der Bereich 0 bis 127 der Ebene 0 ist identisch zu ASCII.

Die folgenden Ebenen werden für selten oder nicht mehr benutzte Sprachen benutzt, z.B. für Keilschrift und altägyptische Hieroglyphen.

Verschiedene Unicode-Formate

Da es jedoch nicht sehr wirtschaftlich ist, für jeden Charakter 4 Byte zu übermitteln, insbesondere wenn zumeist der ASCII-Standard gereicht hätte, hat man verschiedene Varianten definiert, die aber im Wesentlichen kompatibel sind:

  • UTF-16 bzw. UCS-2: UTF-16 benutzt eine Zwei-Byte-(= 16 Bit)-Kodierung, was ausreicht, um die Ebene 0, die „Basic Multilingual Plane“ zu kodieren.
  • UTF-32 bzw. UCS-4 ermöglicht als 4-Byte-Darstellung die Kodierung aller Unicode-Charakter.
  • Neben den genannten Formaten ist auch UTF-8 sehr gebräuchlich. UTF-8 drückt jeden Charakter als Abfolge von 8-Bit-Datenwörten aus. Die Anzahl der benötigten Bytes ist unterschiedlich, für die ersten 128 Charakter wird nur ein Byte benötigt. Wenn man im Wesentlichen nur Charakter des ASCII benutzt, erhält man zum einen ein speichersparendes Dokument, und zum anderen eine Kodierung, die dem ASCII ähnlich ist.

Darstellung der Unicode-Zeichen

Auch wenn der Großteil aller denkbaren Charakter definiert ist, so wird man immer noch mit zwei Problemen konfrontiert:

  1. Herkömmliche Schriftarten (Fonts) können für die Darstellung nicht mehr eingesetzt werden, und neue, Unicode-konforme Schriftarten verbreiten sich erst allmählich. Allerdings sollten moderne Betriebssysteme wenigsten (teilweise) die Charakter der ersten Ebene Darstellen können. Als Schriftarten eignen sich u.a. Arial Unicode MS für das Betriebssystem Windows, das Bestandteil von Microsoft Office 2000 bzw. 2003 ist. Unter Umständen muss die Unterstützung semitischer und/oder asiatischer Sprachen nachinstalliert werden.
  2. Das Erscheinungsbild zahlreicher Charakter kann durch Ligaturbildung oder Verwendung in verschiedenen Sprachen verändert sein. Hierzu sind gelegentlich alternative Schriftarten notwendig, die über das Sprachenattribut ausgewählt werden. Die Ligaturbildung bzw. Kombinationen von Grundbuchstabe mit Diakritika werden mittels OpenType-Schriftarten (Microsoft Windows) realisiert.

Unicode in Domänennamen

Mit der Standardisierung des Unicodes bestand auch das Interesse, den vergrößerten Zeichenvorrat auch auf den Domänennamen anwenden zu können. Möglich wird dies durch die Verwendung des Standards „Internationalizing Domain Names in Applications“ (IDNA, RFC 3490, Punycode). Moderne Browser unterstützen dieses Verfahren.

Referenzen