UNICODE (16-BIT

Werbung
Abteilung Informatik, Fach Programmieren
FHZ
Hochschule für Technik+Architektur Luzern
UNICODE (16-BIT-ZEICHENCODE)
UNICODE (16-BIT-ZEICHENCODE)
Der Unicode macht die Zeichen aller auf der Welt bekannten
Sprachen, Satzzeichen und mathematischen Zeichen in einem
Zeichensatz verfügbar.
Die 65'536 darstellbaren Zeichen sind in Zeichengruppen unterteilt:
16-Bit-Code
Zeichengruppe
0000 - 007F
ASCII (7-Bit-Standard)
0080 - 00FF
Latin 1 (ISO 8859-1)
0100 - 017F
European Latin
0180 - 01FF
Extended Latin
0250 - 02AF
Standardmässige Lautschriftzeichen
(vgl. 1 Laut = 1 Zeichen)
02B0 - 02FF
Veränderte Zeichen
0300 - 036F
Generische diakritische Zeichen
(vgl. über und unter Buchstaben)
0370 - 03FF
Griechisch
0400 - 04FF
Kyrillisch
0530 - 058F
Armenisch
0590 - 05FF
Hebräisch
0600 - 06FF
Arabisch
...
Java codiert Textzeichen konsequent in Unicode. Um vorhandene 7/8-Bit-Editoren und Text-Dateiformate verwenden zu können,
definiert Java eine sogenannte Unicode-Escapesequenz. Diese
hat die Form:
\uhhhh
Unicode.doc, V24
© H. Diethelm
z.B. \u004A
für 'J'
Seite 1/2
FHZ
Hochschule für Technik+Architektur Luzern
Abteilung Informatik, Fach Programmieren
UNICODE (16-BIT-ZEICHENCODE)
Neben der Unicode-Escapesequenz von Java gibt es noch andere
Brücken zwischen Unicode und der "8-Bit-Welt". Eine davon ist die
weitverbreitete UTF8-Codierung (Unicode Transformation Format). Diese wird auch von den Java-Klassenbibliotheken unterstützt.
Mit Hilfe von UTF8 können Bitmuster bis 31 Bits Länge mit einer
Folge von maximal 6 Bytes übertragen werden. Für Unicode
codierte Zeichen genügen maximal 3 Bytes, wobei für Zeichen
\u0001 bis \u007F (also ASCII 7-Bit-Standrad) ein Byte genügt!
Da diese Zeichen in den meisten Texten am häufigsten vorkommen, spart eine UTF8-Übertragung oder Speicherung bis zu 50%
Platz.
Folgende Tabelle illustriert das Prinzip der UTF8-Codierung:
Fall
1. Byte
# freie Bits
max.
reicht für
1 Byte:
0xxxxxxx
7
007F
ASCII 7-Bit
2 Bytes: 110xxxxx
5 + 1*6 = 11 07FF
Latin 1, ...
3 Bytes: 1110xxxx
4 + 2*6 = 16 FFFF
Unicode
4 Bytes: 11110xxx
3 + 3*6 = 21 1F FFFF
...
5 Bytes: 111110xx
2 + 4*6 = 26 3FF FFFF
...
6 Bytes: 1111110x
1 + 5*6 = 31 7FFF FFFF ...
2. bis 6. Byte # freie Bits
10xxxxxx
6
Ist in einem Byte das Bit 7 gleich Null, so stellt dies eine Folge
von nur einem Byte dar. Ist das Bit 7 gleich Eins, so ist dieses
Byte Teil einer Folge von 2 bis 6 Bytes. Die Anzahl der Bytes
entspricht der Anzahl der zusammenhängenden Einsen bis zur
ersten Null. Die Nachfolge-Bytes beginnen eindeutig mit dem Muster 10. Java codiert \u0000 speziell mit 2 Bytes, nämlich
11000000 10000000.
Unicode.doc, V24
© H. Diethelm
Seite 2/2
Herunterladen