Java-Quelltexte als Unicode-Texte (), Lektion, Seite 721541
https://www.purl.org/stefan_ram/pub/unicode_quelltexte_java (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Java -Quelltexte als Unicode -Texte

Unicode-Zeichen

Ein Java -Programm besteht aus Zeichen der Unicode -Zeichenmenge. Damit können im Quelltext mehrere zehntausend verschiedene Zeichen verwendet werden. Java  erlaubt es, diverse Sonderzeichen und Zeichen aus den Alphabeten vieler Sprachen direkt im Quelltext zu verwenden.

Der Rest dieser Lektion behandelt einige Aspekte der Verwendung von Sonderzeichen in Java , die bei den ersten Beispielprogrammen nicht benötigt werden, und kann daher beim ersten Lesen auch übersprungen werden. Er kann allerdings relevant werden, wenn beispielsweise Umlaute in Javaprogrammen verwendet werden sollen.

Da die Eingabe, Bearbeitung oder Anzeige aller Zeichen, die nicht bereits zum klassischen ASCII -Code gehören, Schwierigkeiten bereiten kann, sind diese Zeichen selten in Java -Programmen zu finden und werden auch in den Standard-Sprachelementen (wie den Schlüsselwörtern) nicht verwendet. Das große lateinische „A“ sieht beispielsweise ähnlich aus, wie das große griechische Alpha „Α“, so daß beim Lesen von Quellcode die Zeichen auch nicht immer eindeutig erkannt werden können.

Der Java -Compiler kann Quellcode verschiedener Zeichencodierungen lesen. Als Vorgabe wird die Vorgabe- oder Standardeinstellung der aktuellen Umgebung verwendet. Andere Codierungen lassen sich mit der Option "encoding" angeben.

Nicht jeder Editor ermöglicht die Bearbeitung von Texten mit allen Unicode -Zeichen. Falls aber ein geeigneter Editor verwendet wurde, dann muß dem Java -Compiler die für die Datei verwendete Codierung mitgeteilt werden, wenn  diese von der Vorgabe der Umgebung abweicht. Soll die Datei "Hallo.java" beispielsweise mit der oft für Unicode  verwendeten Codierung "UTF-8" interpretiert werden, so kann das unter "javacutf" angegebene Kommando verwendet werden.

javacutf [Kommando]
javac -encoding UTF-8 Hallo.java

Die möglichen Namen für Codierungen lassen sich dem Quellcode der Klasse "sun.io.CharacterEncoding" entnehmen.

Die Tabelle "Einige Codierungsnamen" nennt einige Beispiele.

Einige Codierungsnamen [Tabelle]
"Name",       "Bedeutung": 
"us-ascii", "ANSI_X3.4-1968". 
"iso-8859-1", "ISO_8859-1:1987". 
"utf-8", "UTF-8". 
"cp437", "IBM437". 
"cp580", "IBM580".

Außerdem gibt es von Sun  noch eine Veröffentlichung Supported Encodings.

Supported Encodings
http://java.sun.com/j2se/1.3/docs/guide/intl/encoding.doc.html

Inzwischen finden sich weiter Angaben zu den Zeichensätzen auch noch auf einer anderen Seite:

java.nio.charset, Class Charset
http://java.sun.com/j2se/1.5.0/docs/api/java/nio/charset/Charset.html

Quelltextdarstellungen

Der Text, der eine Java -Übersetzungseinheit ausmacht, ist eigentlich ein Ersatztext, der aus dem vom Benutzer geschriebenen Quelltext nach bestimmten Regeln hergestellt wird. Meistens stimmen Quelltext und Ersatztext überein, weil ein Quelltextzeichen oft für dasselbe Ersatztextzeichen (Ersatzzeichen) steht.

Jedes Unicode -Zeichen hat eine bestimmten Unicode -Kennzahl.

Ein Ersatzzeichen in einer Java -Übersetzungseinheit kann durch eine Unicode-Quelltextdarstellung  geschrieben werden.

Im Fluchtzustand stellt das Zeichen "u" gefolgt von einem vierstelligen Hexadezimalnumeral ein Ersatzzeichen mit dem durch das Hexadezimalnumeral beschriebenen Code dar. So steht im Grundzustand der Quelltext "\u0041" beispielsweise für den Buchstaben "A". Der inverse Schrägstrich schaltet dabei in den Fluchtzustand und in diesem Zustand bedeutet dann der Text "u0041" den Buchstaben "A". Der Buchstabe "A" hat nämlich die Unicode -Kennzahl 65, und das Hexadezimalnumeral "0041" steht für diese Zahl, weil das Numeral 41 im Zahlensystem zur Basis 16 (dem „Hexadezimalsystem“) den Wert 65 hat. Der gesamte Text "\u0041" wird auch als eine Unicode-Quelltextdarstellung  bezeichnet. Nach einer solchen Unicode -Quelltextdarstellung endet der Java -Leser wieder im Grundzustand.

Damit kann ein einfaches Hallo-Programm beispielsweise wie das Programm "HalloFlucht.java" geschrieben werden. Dort wurden willkürlich einige Zeichen am Anfang und am Ende des Quelltextes durch Unicode -Quelltextdarstellungen dargestellt. Durch die Interpretation des Java -Lesers ergibt sich dann zunächst ein Ersatztext, der dann schließlich zur Erstellung des lauffähigen java -Programms verwendet wird.

HalloFlucht.java
\u0070\u0075\u0062\u006C\u0069\u0063 class HalloFlucht 
{ public static void main( final java.lang.String s[] ) 
{ java.lang.System.out.println( "Hallo!" \u0029\u003B\u0020\u007D\u007D

HalloFlucht [Ersatztext]
public class HalloFlucht 
{ public static void main( final java.lang.String[] args ) 
{ java.lang.System.out.println( "Hallo!" ); }}

System.out
Hallo!

Die Unicode -Quelltextdarstellungen werden oft gar nicht benötigt, sie können aber einmal nützlich sein, um Zeichen zu schreiben, die mit der verwendeten Tastatur oder dem verwendeten Editor nicht direkt eingegeben werden können oder wenn ein Editor Sonderzeichen sonst in einer unpassenden Kodierung abspeichert. So kann das Unicode-Zeichen "ö" (kleiner o-Umlaut) jederzeit als "\u00F6" geschrieben werden. (Dieses Zeichen erscheint aber, wenn es als Teil eines Textes ausgegeben wird, nicht ohne weiteres auf einer Ausgabekonsole auch wieder als "ö". Hierzu müssen im allgemeinen noch geeignete Einstellungen vorgenommen werden.)

Durch das Werkzeug "native2ascii" kann ein Quelltext in einen Quelltext mit der Codierung ASCII  gewandelt werden. Dabei werden alle Nicht-ASCII -Zeichen durch Quelltextdarstellungen dargestellt. Um einen UTF-8 -Quellcode "Source.java" in dieser Weise umzuwandeln, kann beispielsweise das unter "utf8ascii" angegeben Kommando verwendet werden.

utf8ascii [Kommando]
native2ascii -encoding UTF-8 Source.java

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram721541 stefan_ram:721541 Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd721541, slrprddef721541, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/unicode_quelltexte_java