Unicode, Zeichensätze und Codierungen

(Auszug aus "Perl & XML" von Erik T. Ray & Jason McIntosh)

Auf niederer Ebene ist Text für Computer einfach eine endliche Folge positiver ganzer Zahlen. Diese Zahlen stellen eine Abbildung auf Codierungstabellen und damit letzten Endes auf Zeichensätze dar. Dabei kann es sich durchaus auch um Steuerzeichen wie das Zeilenende oder den Tabulator handeln. Der bei weitem wichtigste Zeichensatz ist US-ASCII. Darin enthalten sind 128 Zeichen, unter anderem Groß- und Kleinbuchstaben des romanischen Alphabets, die Ziffern, verschiedene Symbole, Leerzeichen und einige spezielle Steuerzeichen für den Druck, die letzten Endes noch von den alten Typenraddruckern herkommen. Erweitert man die Breite des Zeichensatzes um ein achtes Bit, dann verdoppelt man die Anzahl der Zeichen dieses 7-Bit-Zeichensatzes und erhält einen Zeichensatz wie zum Beispiel ISO Latin-1, der in vielen Unix-Systemen verwendet wird. Dieser Zeichensatz enthält darüber hinaus eine Reihe mitteleuropäischer Zeichen wie die deutschen Umlaute, die Accents, Ligaturen, Zeichen für Fußnoten und juristische Symbole. Leider hat die mit Kreativität gesegnete und mit Stolz geschlagene Menschheit aber viel, viel mehr Zeichen und Symbole erschaffen, als man mit einem kümmerlichen 8-Bit-Zeichensatz abdecken könnte.

Aus diesem Grund hat sich seit geraumer Zeit ein weiterer Zeichensatz namens Unicode eingebürgert. Er wird mehr und mehr zur Standardmöglichkeit, alle möglichen jemals von Menschen geschriebenen Dokumente und Quelltexte zu erfassen. Abhängig von der eingesetzten Variante, benutzt er bis zu 32 Bits für die Speicherung eines einzelnen Zeichens und bietet damit Platz für viele Millionen von Zeichen. Seit über einem Jahrzehnt beschäftigt sich das Unicode-Konsortium damit, diesen Platz zu füllen, indem einmal der gesamte chinesische Han-Zeichensatz eingefügt wird, ein anderes Mal verschiedene mathematische Symbole und ein weiteres Mal die deutschen Skatsymbole. Trotzdem ist nach wie vor genügend Platz für das aktuelle Jahrtausend vorhanden – vielleicht auch für das nächste.

Nachdem wir uns gerade soviel Mühe gegeben haben, Unicode in ein vorteilhaftes Licht zu rücken, wird es Sie nicht besonders überraschen, daß der Standardzeichensatz von XML die Unicode-Variante UTF-8 ist. UTF-8 ist eine Codierung mit variabler Zeichensatzlänge. Das heißt, daß die US-ASCII-Zeichen als ein Byte (sie selbst) gespeichert werden, andere Zeichen (speziell die von ISO Latin-1) in zwei Bytes und wieder andere in bis zu sechs Bytes. Man kann problemlos ein ganzes XML-Dokument mit Ein-Byte-Zeichen verfassen, wenn man sich auf ISO Latin-1 beschränkt (ein sehr angenehmer Zeichensatz, der von 1 bis 255 geht) und gelegentlich von Entityreferenzen Gebrauch macht. Wenn Sie aber gelegentlich ein spezielles Zeichen einstreuen wollen oder gar eine ganze Menge (zum Beispiel für Daten in asiatischen Sprachen), dann können Sie diese mit UTF-8 leicht codieren. Prozessoren, die mit Unicode umgehen können, werden die korrekten Zeichen darstellen. Ältere Anwendungen dagegen werden die Mehrbyte-Zeichen möglicherweise einfach ignorieren und durchreichen. Seit Version 5.6 kann auch Perl mit UTF-8 umgehen, und zwar immer besser. Wie man Unicode in Perl behandelt, darauf kommen wir in XML-Grundlagen: Lesen und Schreiben zurück.

  

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema Perl & XML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © 2003 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "Perl & XML" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de