Mehr Zeichen β Unicode / UTF-8 Codierung
Unicode
Unicode ist ein internationaler Standard für Schriftzeichen und Symbole. Das Unicode-Konsortium erstellt einen Katalog von allen sinnvollen Schriftzeichen, welcher ständig erweitert wird. In der Version 14, welche im September 2021 veröffentlicht wurde, umfasst Unicode 144'697 Zeichen.
Hier sind ein paar Zeichen aufgeführt, um zu illustrieren, wie umfangreich Unicode ist:
Zeichen | Beschreibung | Link |
---|---|---|
A | Lateinischer Grossbuchstabe A | |
γ | Hiragana-Buchstabe Ya | |
α | Cherokee-Buchstabe S | |
π© | Spielkarte Neun der Herzen | |
π€― | Entsetztes Gesicht mit explodierendem Kopf | |
π | Affe | |
β» | Power-Symbol | |
π¬ | Ägyptische Hieroglyphe Nl012 |
Quelle: UT - Unicode Table
Jedes Unicode-Zeichen hat eine eindeutige Unicode-Nummer, welche häufig als hexadezimale Zahl geschrieben wird. Hier wird die dezimale Schreibweise verwendet.
UTF-8
Zeichen | Nummer | Bitmuster |
---|---|---|
A | 65 | 01000001 |
ä | 228 | 11000011 10100100 |
Schwarze Sonne mit Strahlen β | 9728 | 11100010 10011000 10000000 |
Affe π | 128018 | 11110000 10011111 10010000 10010010 |
UTF-8 ist ein Code, der Unicode-Zeichen in Bits übersetzt. Ein Unicode-Zeichen wird mit ein bis vier Byte dargestellt.
Begriffe
Wir wollen die grundlegenden Begriffe noch anhand der Unicode/UTF-8-Codierung repetieren: Die Senderin will die Information «Ich bin müde» an den Empfänger übermitteln. Sie codiert die Information als Emoji. Das Handy codiert das Emoji mit dem Unicode/UTF-8-Standard als Bitfolge.
Die Bitfolge wird über das Internet an das Handy des Empfängers übermittelt. Das Handy des Empfängers decodiert die Bitfolge wieder zurück in das entsprechende Emoji. Die Interpretation des Emojis muss vom Empfänger selbst vorgenommen werden.
UTF-8 im Detail
Die folgende Tabelle zeigt, wie die Codierung funktioniert:
Unicode-Bereich | Bitmuster | Anzahl Bit |
---|---|---|
0 bis 127 | 0xxxxxxx |
7 |
128 bis 2047 | 110xxxxx 10xxxxxx |
11 |
2048 bis 65535 | 1110xxxx 10xxxxxx 10xxxxxx |
16 |
ab 65536 | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx |
21 |
Unicode-Zeichen mit einer Nummer zwischen 0 und 127 werden mit einem Byte dargestellt, welches mit 0
beginnt. Somit ist UTF-8 in diesem Bereich identisch mit ASCII.
Für die anderen Zeichen wird mehr als ein Byte verwendet. Dabei beginnt jedes Byte mit einer oder mehreren 1
, gefolgt von einer 0
. Die Anzahl 1
im ersten Byte definieren, wie viele Bytes für das Zeichen verwendet werden. Die folgenden Bytes werden mit 10
markiert. Die x
werden mit der Binärdarstellung der Unicode-Nummer aufgefüllt.
Der Vorteil dieser Codierung ist, dass am Beginn eines Bytes erkannt wird, ob es sich um den Anfang die Fortsetzung eines Zeichens handelt.
Beginn | Bedeutung |
---|---|
0… |
ASCII-Zeichen |
10… |
Fortsetzung eines Zeichens mit mehreren Bytes |
110… |
Beginn eines Zeichens mit zwei Bytes |
1110… |
Beginn eines Zeichens mit drei Bytes |
11110… |
Beginn eines Zeichens mit vier Bytes |
Dies wird deutlich, wenn man dies als Binärbaum darstellt:
Challenge
Emojis in UTF-8 codieren
Wandeln Sie die folgenden drei Emojis in UTF-8 um.
Gehen Sie dabei in zwei Schritten vor:
-
Bestimmen Sie die Unicode-Nummer (Codepoint).
-
Schreiben Sie die UTF-8-Codierung (in Binärblöcken).
Emojis:
-
π Unicode: U+1F642 (dezimal: 128578)
-
β Unicode: U+2600 (dezimal: 9728)
-
π Unicode: U+1F412 (dezimal 128018)
Quellen & Attribution
- MyGymer β βMyGymerβ (), CC BY-NC-SA 4.0 (https://creativecommons.org/licenses/by-nc-sa/4.0/) Β· Lizenzdetails NCSA