Über Unicode

Unicode (Dt. etwa: "Einheitssschlüssel") ist ein alphanumerischer Zeichensatz, ein von der internationalen Standardisierungs-Organisation ISO genormtes System zur Kodierung von Textzeichen (Buchstaben, Silbenzeichen, Ideogrammen, Satzzeichen, Sonderzeichen, Ziffern). Unicode ist der Versuch, weltweit alle bekannten Textzeichen in einem Zeichensatz zusammenzufassen, also nicht nur die Buchstaben des lateinischen Alphabets, sondern etwa auch das griechische, kyrillische, arabische, hebräische, thailändische Alphabet und die verschiedenen japanischen (Katakana, Hiragana), chinesischen und koreanischen Schriften (Hangul). Außerdem können mathematische, kaufmännische und technische Sonderzeichen im Unicode kodiert werden.

Unicode ist ein Zeichensatz (Engl.: "Character Encoding Scheme"; CES), also eine genormte Zuordnungsregel, die die Darstellung von Textzeichen in Form von binären Zahlen ermöglicht, indem sie festlegt, welcher Byte-Wert als welches Zeichen dargestellt wird. Zeichensätze sind im Wesentlichen Tabellen, die einem Textzeichen einen Byte-Wert zuordnen. Jedem Zeichen aus dem Unicode-Zeichensatz ist eine eindeutige Nummer zugewiesen.

Für die Zuordnung von Byte-Werten zu Textzeichen gibt es - neben Unicode - zahlreiche unterschiedliche, miteinander meist unvereinbare Zeichensätze. Die für das Internet wohl wichtigste Zeichenkodierung ist der "American Standard Code for Information Interchange" (ASCII). Im ASCII wird jedes Zeichen mit 7 Bit kodiert; es sind also maximal 128 Zeichen möglich. Der ASCII umfasst - neben einigen Steuerzeichen - vor allem die in der englischen Sprache verwendeten Buchstaben des lateinischen Alphabets sowie die arabischen Ziffern. Schon die in vielen europäischen Sprachen verwendeten Akzentzeichen und Umlaute sind im ASCII-Zeichensatz nicht enthalten, von den Schriftzeichen anderer Alphabete ganz zu schweigen. Deswegen sind im Laufe der Zeit zahlreiche gegenüber dem ASCII erweiterte Zeichensätze entwickelt worden, die mehr Zeichen umfassen. Um einen größeren Zeichenvorrat bereitzustellen, werden die einzelnen Zeichen dieser Zeichensätze mit mehr als 7 Bit kodiert.

Auch mit einer 8 Bit-Kodierung pro Zeichen können jedoch nur 256 verschiedene Zeichen kodiert werden. Deshalb wurden Zeichensätze eingeführt, die mehr als ein Byte für die Kodierung jedes Textzeichens verwenden. Zeichensätze, die zwei Byte zur Darstellung ihrer Zeichen nutzen, bezeichnet man als "Double Byte Character Set" (DBCS; Dt.: "Doppel-Byte-Zeichensatz").

Der Unicode-Zeichensatz ist in mehrere Ebenen (Engl.: "Planes") unterteilt. Normalerweise wird nur die erste Ebene verwendet, die "Basic Multilingual Plane" (BMP; Dt.: "Grundlegende mehrsprachige Ebene"). In dieser Ebene werden 16 Bit (zwei Byte) zur Kodierung jedes Zeichens verwendet; auf der "Basic Multilingual Plane" sind also 65.536 Zeichen möglich. Die Kodierung für Unicode-Zeichen der "Basic Multilingual Plane" wird als "Universal Character Set 2" (UCS-2; Dt.: "Universelle Schriftzeichen-Menge 2") bezeichnet, wobei die 2 darauf verweist, dass zwei Byte für die Kodierung jedes Zeichens verwendet werden. UCS-2 ist also ein "Double Byte Character Set".

Wenn von "Unicode" gesprochen wird, ist meist der Zeichensatz UCS-2 gemeint, also die "Basic Multilingual Plane" des Unicode. Die ersten 256 der 65.536 Zeichen des UCS-2 entsprechen den Zeichen des Zeichensatzes "ISO Latin-1" (ISO 8859-1); eines ebenfalls von der ISO genormten und weit verbreiteten Zeichensatzes, in dem die Zeichen der west-europäischen Sprachen zusammengefasst sind. In "ISO Latin-1" wird jedes Zeichen mit nur 8 Bit (einem Byte) kodiert. UCS-2 wird auch als UTF-16 bezeichnet. UTF-16 steht für "UCS Transformation Format 16 Bit" (Dt. etwa: "Umwandlungsformat für die universelle Schriftzeichen-Menge mit 16 Bit"). UCS-2 folgt jedoch dem ISO-Standard ISO 10646, während UTF-16 dem Standard des "Unicode Consortium" folgt, aber diese beiden Standards unterscheiden sich nur geringfügig.

Auf den übrigen Ebenen des Unicode, die über die "Basic Multilingual Plane" hinausgehen, sind selten verwendete, meist historische Schriftzeichen kodiert, zum Beispiel alt-ägyptische Hieroglyphen und kaum noch gebräuchliche chinesisches Schriftzeichen. Für die Darstellung dieser Zeichen aus den höheren Unicode-Ebenen reichen 16 Bit pro Zeichen nicht mehr aus. Dort wird daher jedes Zeichen mit 32 Bit kodiert, so dass insgesamt 4.294.967.296 verschiedene Zeichen möglich sind. Die Kodierung für Unicode-Zeichen der höheren Ebenen des Unicode wird als "Universal Character Set 4" (USC-4; Dt.: "Universelle Schriftzeichen-Menge 4") bezeichnet, wobei die 4 darauf verweist, dass vier Byte (32 Bit) für die Kodierung jedes Zeichens verwendet werden. Die UCS-4-Kodierung ermöglicht es, jedes beliebige Unicode-Zeichen, gleichgültig welcher Ebene des Unicode, in einem 32 Bit langen Datenwort dazustellen. Diese Kodierung wird mit Rücksicht auf ihren hohen Speicherplatz-Bedarf nur dann verwendet, wenn auch Unicode-Zeichen verwendet werden sollen, die zu einer höheren Ebene als der "Basic Multilingual Plane" gehören.
UCS-4 wird auch als UTF-32 bezeichnet. UTF-32 steht für "UCS Transformation Format 32 Bit" (Dt. etwa: "Umwandlungsformat für die universelle Schriftzeichen-Menge mit 32 Bit"). Dabei folgt UCS-4 dem ISO-Standard ISO 10646, während UTF-32 dem Standard des "Unicode Consortium" folgt, die nur geringfügig voneinander abweichen.

Neben UTF-16 und UTF-32 ist auch das "USC Transformation Format 8 Bit" (UTF-8) gebräuchlich. UTF-8 kann jedes Unicode-Zeichen als Abfolge von Datenwörtern von je 8 Bit Länge ausdrücken. UTF-8 ermöglicht also die Umwandlung von 16 Bit- in 8 Bit-codierte Schriftzeichen. UTF-8 stimmt in den ersten 128 Zeichen mit dem "American Standard Code for Information Interchange" (ASCII) überein.

Das in Kalifornien ansässige "Unicode Consortium" hat den Unicode-Standard im Jahr 1991 veröffentlicht. Unicode ist im Jahre 1996 von der "International Organization for Standardization" (ISO) als ISO 10646 angenommen worden. Unicode-Version 1.0 kam im Jahr 1991 heraus, Version 1.1 stammt aus dem Jahre 1993, Version 2.0 von 1996, Version 2.1 von 1998 und Version 3.0 aus dem Jahr 2000.
Auf der "Basic Multilingual Plane" des Unicode sind 65.536 verschiedene Zeichen möglich. In der Unicode-Version 3.0 vom September 1999 wurden bereits 49.194 Zeichen festgelegt. In die Version 3.1 vom März 2001 sollten nochmals 44.946 Zeichen, zum Beispiel aus historischen Schriften (etwa Runen oder Hieroglyphen), zusätzlich aufgenommen werden, so dass der Unicode dann 94.140 Zeichen umfasst. So viele Zeichen sind in 16 Bit pro Zeichen jedoch nicht mehr darstellbar; deswegen werden in den höheren Ebenen des Unicode 32 Bit (vier Byte) pro Zeichen verwendet.

Im Unicode sind zusammengehörige Zeichen in so genannten Skripten zusammengefasst:
Auf das lateinische Alphabet folgen das griechische, kyrillische, hebräische, arabische, indische und andere, dann folgen Satzzeichen und Symbole; weiter geht es mit den beiden japanischen Schriften Hiragana und Katakana, mit BoPoMoFo (einer phonetischen Transkription des chinesischen PinYin in lateinischen Buchstaben, die vor allem auf Taiwan verwendet wird) und dem koreanischen Hangul. In den chinesischen, japanischen und koreanischen (CJK) Schriften werden etwa 31.000 Schriftzeichen verwendet. Da jedoch in der japanischen und chinesischen Sprache rund 10.000 Schriftzeichen (in der Schreibweise, wenn auch nicht unbedingt in der Bedeutung und Aussprache) übereinstimmen, brauchten im Unicode "nur" rund 21.000 ost-asiatische Schriftzeichen festgelegt zu werden.
Rund 6.000 Codes sind zum Beispiel für Firmensymbole reserviert.

Zum Unicode gehören vier Steuerzeichen, nämlich:

Das Steuerzeichen für die Schreibrichtung von rechts nach links wird zum Beispiel für Arabisch und Hebräisch benötigt.

Der Unicode-Standard wird zwar von führenden Computer-Unternehmen wie Apple, Hewlett-Packard, IBM, JustSystem, Microsoft, Oracle, SAP, Sun, Sybase und Unisys unterstützt, setzt sich aber gleichwohl nur langsam durch.
Das "World Wide Web Consortium" (W3C) hat den Unicode in den Standard von HTML 4.0 aufgenommen. Seit seiner Version 2.0 ist der Unicode auf die internationale Norm ISO/IEC 10646 abgestimmt, der auch die "HyperText Markup Language" (HTML) seit Version 4.0 und die "eXtensible Markup Language" (XML) seit Version 1.0 folgen. Dadurch ist es relativ einfach, jedes beliebige Unicode-Zeichen in einem HTML- oder XML-Dokument zu verwenden. Dazu schlägt man in den Unicode-Zeichentabellen nach, welchen Byte-Wert (welche laufende Nummer) das gewünschte Zeichen hat. Dann kann das betreffende Unicode-Zeichen als numerische Notation - zum Beispiel ⚏ in dezimaler Schreibweise oder ⚏ in hexadezimaler Schreibweise - in den Quelltext der HTML- oder XML-Datei eingefügt werden. Dabei wird die hexadezimale Schreibweise anhand des vorangestellten "x" von der Dezimal-Schreibweise unterschieden. Neuere Browser können Web-Seiten darstellen, in denen Unicode-Zeichen verwendet werden, wenn beim Client ein geeigneter Font zur Wiedergabe der Zeichen installiert ist.
Auch in der "Wireless Markup Language" (WML), in der Internet-Seiten für mobile Kleingeräte (zum Beispiel Mobiltelefone) kodiert werden, können Unicode-Zeichen verwendet werden.

Unicode definiert zwar einen Byte-Wert für alle gängigen (und etliche seltene) Textzeichen, löst jedoch nicht das Problem, wie alle diese Zeichen an einem Computer dargestellt werden können, denn Unicode definiert nur Zeichenwerte und Eigenschaften von Zeichen, enthält aber keine Angaben darüber, wie das Zeichen zum Beispiel auf dem Bildschirm oder im Druck darzustellen ist. Herkömmliche Computer-Schriftarten reichen dazu nicht aus und neue, zum Unicode passende Schriftarten verbreiten sich erst allmählich. Immerhin unterstützen moderne Betriebssysteme und Anwendungen wenigstens Doppel-Byte-Zeichensätze, also Unicode-Zeichen nach der "Basic Multilingual Plane" (BMP) bis einschließlich Version 3.0 des Unicode-Systems.
Sowohl die plattform-übergreifende Programmiersprache Java als auch das Microsoft-Betriebssystem Windows NT arbeiten intern mit Unicode. NT enthält mit "Lucida Sans Serif" einen immerhin 1.300 Zeichen umfassenden Font für Unicode-Zeichen. "Arial Unicode MS" ist ein nicht frei verfügbarer Font, der alle Unicode-Zeichen der Unicode-Version 2 darstellen kann, also auch die Zeichen vieler asiatischer Schriften.

Unicode ist anwendbar in modernen Standards wie ECMAScript (JavaScript), im "Lightweight Directory Access Protocol" (LDAP) und "Common Object Request Broker Architecture" (CORBA) ab Version 3.0.
Das Apple-Betriebssystem MacOS gestattet Dateinamen in Unicode.

Da nach wie vor viele Datenübertragungsverfahren (Protokolle), Anwendungen und Programme auf dem ASCII-Zeichensatz beruhen, kann es bei der Verwendung von Schriftzeichen, die nicht zu diesem amerikanischen Zeichensatz gehören, zu Schwierigkeiten kommen. E-Mail zum Beispiel fußt auf 7 Bit-ASCII-Zeichen. Sollen in einer E-Mail gleichwohl Sonderzeichen (zum Beispiel die deutschen Umlaute) übertragen werden, müssen diese in ASCII-Zeichen umkodiert werden. Dies ist unter anderem mit Hilfe der "Multipurpose Internet Mail Extensions" (MIME; Dt.: "Mehrzweck-Erweiterungen für Internet-Mail") möglich.

Quelle:
http://www.lexitron.de/main.php?detail=true&eintrag=119


Seitenanfang