Traditionell in der Informatik bekannte Zeichenkodierungen sind der ASCII- und der EBCDIC-Code. Letzterer hat allerdings stark an Bedeutung verloren. Zunehmend in den Vordergrund getreten sind Zeichensätze mit international notwendigen Zeichen, die über das Englische hinausgehen, z. B. diesbezügliche Zeichensätze gemäß ANSI und insbesondere der international anerkannte Standard Unicode.
Unter Zeichenkodierung versteht man die Zuordnung von Zahlen zu grafischen Zeichen, insbesondere zu den Schriftzeichen der menschlichen Sprache, damit diese mit Hilfe von Computern gespeichert, übertragen und umgewandelt werden können. Die Zahlenwerte, aus denen eine Zeichenkodierung besteht, werden als Codepunkte bezeichnet und bilden zusammen einen Codebereich, eine Codepage oder eine Zeichentabelle.
Ein Zeichensatz ist weniger als ein Zeichencode, der zusätzlich noch eine definierte Nummerierung der Zeichen des Zeichensatzes enthalten muss.
Frühe Zeichenkodierungen, die ihren Ursprung in der optischen oder elektrischen Telegrafie und in frühen Computern hatten, konnten nur eine Teilmenge der in Schriftsprachen verwendeten Zeichen darstellen und beschränkten sich manchmal auf Großbuchstaben, Ziffern und einige Satzzeichen. Im Laufe der Zeit wurden Zeichenkodierungen geschaffen, die mehr Zeichen darstellen können, wie ASCII, die ISO/IEC 8859-Kodierungen, verschiedene Kodierungen von Computerherstellern und Unicode-Kodierungen wie UTF-8 und UTF-16.
Die beliebteste Zeichenkodierung im World Wide Web ist UTF-8, die in 98,2 % der untersuchten Websites verwendet wird (Stand: Mai 2024). In Anwendungsprogrammen und Betriebssystemen sind sowohl UTF-8 als auch UTF-16 beliebte Optionen.
1.) ASCII
ASCII ist einer der ersten Standardzeichensätze, der auf 7 Bit
Informationen basiert mit denen 128 Zeichen kodiert werden können.
Die ersten 32 Zeichen (0-31) sind für Steuerzeichen reserviert, die restlichen Zeichen (32-127) für
darstellbare Zeichen (vor allem die in der englischen Sprache verwendeten Buchstaben).
2.) ANSI
ANSI arbeitet mit 8 Bit und kann 256 Zeichen kodieren.
Die Zeichen 0 bis 127 sind der ASCII-Zeichensatz und die Werten zwischen 128 und 255 sind Sonderzeichen.
3.) ISO-8859
Da der Bedarf an international gültigen Zeichensätzen immer größer wurde
entstand ein Set von Zeichensätzen (iso-8859-Familie).
Alle diese Zeichensätze basieren auf 8 Bit und können 256 Zeichen abbilden.
Die ersten 128 Zeichen (0 - 127) sind immer identisch mit dem ASCII-Zeichensatz.
Die zweiten 128 Stellen enthalten spezielle Zeichen.
So enthält der Zeichensatz ISO-8859-1 die schriftspezifischen Zeichen für westeuropäische und amerikanische Sprachen,
ISO-8859-2 die Zeichen für die meisten mitteleuropäischen und slawischen Sprachen, ...,
ISO-8859-15 das Euro-Zeichen.
4.) Unicode
Unicode soll die Lösung für einen universellen Zeichensatz zur Darstellung möglichst
aller Zeichen aller Sprachen sein.
Hier werden für das Speichern eines Zeichens 16 Bit verwendet und somit können 65536 Zeichen genutzt werden.
Wenn beim Unicode das erste Byte auf null gesetzt wird,
verhält er sich wie ASCII.
5.) UTF-8
In UTF-8 (8-bit Unicode Transformation Format) wird jedem Unicode-Zeichen eine speziell kodierte Bytekette von variabler Länge zugeordnet.
UTF-8 unterstützt bis zu 4 Byte, mit denen sich 1.114.112 Zeichen abbilden lassen.
Unicode-Zeichen mit den Werten aus dem Bereich von 0 bis 127 werden in der UTF-8-Kodierung als ein Byte mit dem gleichen Wert wiedergegeben.
Insofern sind alle Daten, die ausschließlich echte ASCII-Zeichen verwenden, in beiden Darstellungen identisch.
Unicode-Zeichen größer als 127 werden in der UTF-8-Kodierung zu Byteketten der Länge zwei bis vier.
Übersicht:
Unicode-Bereich / UTF-8-Kodierung / Möglichkeiten / Bemerkungen
- 0000 0000 - 0000 007F / 0xxxxxxx / 27 128
In diesem Bereich (128 Zeichen) entspricht UTF-8 genau dem ASCII-Code: Das erste Bit ist 0, die darauf folgende 7-Bitkombination ist das ASCII-Zeichen. - 0000 0080 - 0000 07FF 110xxxxx 10xxxxxx / 211 (2.048) - 27
Das erste Byte beginnt mit binär 11, die folgenden Bytes beginnen mit binär 10; die x stehen für die fortlaufende Bitkombination des Unicode-Zeichens. Die Anzahl der Einsen bis zur ersten 0 im ersten Byte ist die Anzahl der Bytes für das Zeichen. [In eckigen Klammern jeweils die theoretisch maximal möglichen. - 0000 0800 - 0000 FFFF / 1110xxxx 10xxxxxx 10xxxxxx / 216 (65.536) - 211
- 0001 0000 - 0010 FFFF / [0001 0000 - 001F FFFF] 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx / 211 (1.048.576) ( 221 (2.097.152))
Unicode ausprobieren:
public class Test { static public void main (String args[]) { char z; z= 'X'; System.out.println(z); z= '\u0058'; System.out.println(z); z= 58; System.out.println(z); } }
Oder den Code direkt als dezimale Zahl eingeben. Bsp.: z=246 ist ein Umlaut ausserhalb ASCII