Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


2.1

Der Unicode-Zeichensatz



Java-Programme werden intern mit dem so genannten Unicode-Zeichensatz dargestellt. Unicode ist ein international standardisierter Zeichensatz, bei dem jedes Zeichen mit 16 Bit dargestellt wird. Der ASCII-Zeichensatz ist eine Untermenge von Unicode: Die Zeichen des ASCII-Zeichensatzes werden in Unicode mit demselben Codewert dargestellt.

Durch die Breite von 16 Bit kann eine sehr große Menge verschiedener Zeichen kodiert werden. Der Unicode-Zeichensatz deckt damit lateinische Buchstaben, nationale Sonderzeichen des europäischen Raums, aber auch arabische, thailändische sowie japanische Schriftzeichen und viele andere mehr ab.

Da die meisten Computersysteme nicht den vollen Unicode-Zeichensatz unterstützen, sondern nur eine Teilmenge wie ASCII, definiert Java die Escape-Sequenz \u, mit der alle Unicode-Zeichen durch ihren Codewert dargestellt werden können. Diese Escape-Sequenz wird im Abschnitt 2.10.4 beschrieben.

Bei der Kompilierung wird der Quelltext als Erstes aus der Darstellung mit Escape-Sequenzen und nativen Zeichen in eine Folge von 16 Bit breiten Unicode-Zeichen umgewandelt. Erst nach dieser Transformation erfolgt die eigentliche Kompilierung. Dies unterscheidet die Unicode-Escape-Sequenzen von anderen Escape-Sequenzen, die es für den Typ char gibt. Dadurch ist es in Java im Gegensatz zu vielen anderen Programmiersprachen möglich, Umlaute oder andere nationale Sonderzeichen in Bezeichnern zu benutzen. Die Angabe von Umlauten kann entweder direkt erfolgen oder aber über eine Unicode-Escape-Sequenz. Die beiden folgenden Vereinbarungen sind daher äquivalent und würden vom Compiler als doppelte Vereinbarung zurückgewiesen werden, wenn sie gleichzeitig in einem Programm stünden:
   int übertrag;
   int \u00FCbertrag;
In der zweiten Zeile wurde das ü durch die zugehörige Escape-Sequenz \u00FC ersetzt. Der Rest des Bezeichners wird nahtlos angefügt. Damit dies funktioniert, muss die Hexadezimalzahl einer Unicode-Escape-Sequenz immer vierstellig angegeben werden. Wenn man die beiden Zeilen des Beispiels in ein Programm einfügen würde, so gäbe der Compiler eine Fehlermeldung über eine doppelte Vereinbarung aus. Die Ursache liegt darin, dass zwei Bezeichner in Java als gleich gelten, wenn ihre Unicode-Darstellung identisch ist.

Prinzipiell sind Unicode-Zeichen auch in Klassennamen erlaubt. Da der Name der Datei, in der der Bytecode einer Klasse gespeichert wird, mit dem Klassennamen übereinstimmt, können Sonderzeichen in Klassennamen nur dann verwendet werden, wenn sie auch vom betreffenden Betriebssystem unterstützt werden. So können unter UNIX und Windows zusätzlich die deutschen Umlaute verwendet werden, volle Unicode-Unterstützung für Dateinamen bietet das NTFS von Windows.


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.