Einführung

 
 
 

Ein Zeichen ist ein Grundelement der Kommunikation und damit auch eine Grundlage für Kommunikations- und Informationstechnologie. Zeichen speisen sich aus einem Zeichenvorrat. Ein möglicher Zeichenvorrat ist das Alphabet oder das Zahlensystem. Zusätzlich gibt es Sonderzeichen, die z.B. in der Mathematik gebräuchlich sind. Zeichen sind auch die Grundlage zur Darstellung von Daten.

Codierung

Um Zeichen elektronische abzubilden, werden sie in Bits codiert. 8 Bits reichen aus, um 255 verschiedene Zeichen darzustellen. Mit Hilfe einer Tabelle lassen sich jedem Zeichen ein eindeutiger Bitcode zuordnen. Dazu nummeriert man die 255 Zeichen durch und stellt diese Nummer binär dar.

ASCII

Die gebräuchlichste Nummerierung ist die ASCII Nummerierung (American Standard Code for Information Interchange). Er wurde bereits in den 1960er Jahren entwickelt, um den Datenaustausch zwischen Computern unterschiedlicher Hersteller zu ermöglichen. In der ASCII Tabelle werden nicht nur Zeichen codiert, sondern auch wichtige Tastenbelegungen auf der Tastatur.

 

An einem PC mit ASCII-Zeichensatz wird durch Kombination der Tasten [Alt]+[Ziffer (Eingabe im Nummernblock)] jedes Zeichen mit den Byte-Werten 32 bis 255 erzeugt. Beispiele:

[Alt]+[64] : @ ;

[Alt]+[128] : Ç ;

[Alt]+[137] : ë ;

[Alt]+[169] : ® ;

[Alt]+[216] : Ï ;

[Alt]+[189] : ¢;

Auf der Seite http://www.branah.com/ascii-converter kann die Codierung für beliebige Beispiele ausprobiert werden.

Unicode

Um den Anforderungen der verschiedenen Sprachen gerecht zu werden, wurde der Unicode entwickelt. Er verwendet bis zu 32 Bit pro Zeichen und könnte somit über vier Milliarden verschiedene Zeichen unterscheiden. Damit können alle bislang von Menschen verwendeten Schriftzeichen dargestellt werden, sofern sie in den Unicode-Standard aufgenommen wurden.

Unicode baut auf dem älteren Codierung ASCII auf. Man wollte das Rad nicht neu erfinden. Daher hat man die ersten 128 Zeichen von Unicode (Bereich U+0000 bis U+007F) exakt so belegt wie die ASCII-Tabelle. Dies hat praktische Vorteile:

  • Kompatibilität: Ein alter Text, der nur ASCII-Zeichen enthält, ist automatisch auch ein gültiger Unicode-Text (speziell im Format UTF-8).
  • Speichereffizienz: Da die gängigsten lateinischen Buchstaben in den niedrigen Zahlenbereichen liegen, können sie in Unicode-Formaten wie UTF-8 weiterhin mit nur einem Byte (8 Bit) gespeichert werden.

Umsetzung in Java

Du kannst eine Variable vom Datentyp char in Java direkt einer int-Variable zuweisen. Java erledigt die Umwandlung dann automatisch, da ein int mehr Platz bietet als ein char.

char meinZeichen = '$';
int asciiWert = meinZeichen; // Automatische Umwandlung

In einer Schleife können die Char eines String Objektes zeichenweise umgewandelt werden::

String inputText = "Hallo";
for (char c : inputText.toCharArray()) {
    int ascii = c; // Jedes Zeichen wird hier zum ASCII-Wert
    
}

Da die ersten 127 Zeichen von Unicode identisch mit ASCII sind, funktioniert die Umwandlung für Unicode hier genauso.

char meinZeichen = 'A';
int unicodeWert = (int) meinZeichen; 
System.out.println(unicodeWert); // Gibt 65 aus

Unicode ist viel größer als ASCII und umfasst weit mehr als 65.536 Zeichen. Einige moderne Zeichen (wie Emojis oder seltene Schriftzeichen) passen nicht mehr in einen einzelnen 16-Bit char. In Java nennt man diese Werte Code Points. Um den absolut sicheren Unicode-Wert zu erhalten, nutzt man die Methode codePointAt:

String text = "A"; 
int codePoint = text.codePointAt(0);
System.out.println(codePoint); // Gibt 65 aus

Vom Zeichen zum Wissen

 

Grundlage der Betrachtungen sind Zeichen aus einem bestimmten Zeichenvorrat, die, wenn sie einer bestimmten Syntax folgen, als Daten zu verstehen sind. Ein Beispiel: Aus dem oben Aufgeführten Zeichenvorrat wird die Zahl 1,8 dargestellt. Wendet man die deutsche Syntax zur Darstellung von Zahlen an, kann diese Zahl als Datum gespeichert werden. Wendet man hingegen die englische Syntax zur Darstellung von Zahlen an, begeht man einen syntaktischen Fehler. Im englischen Sprachraum wird der Punkt als Dezimalzeichen verwendet. Als Tausendertrennzeichen wird das Komma benutzt (z.B. 1,000.45).

Ein Empfänger gewinnt nun aus Daten Informationen, wenn er diesen eine Bedeutung zuordnen kann. Die Zahl 1,8 könnte für alles mögliche stehen. Nur in einem bestimmten Kontext wird ersichtlich, dass 1,8 für den Wechselkurs Euro zu Dollar steht. Erst wenn der Empfänger die Informationen mit anderen Informationen vernetzten und so Entscheidungen fällen kann, spricht man von Wissen. Um in unserem Bespiel zu bleiben, wird Wissen über die Mechanismen des Devisenhandels aufgebaut.