Zum Hauptinhalt springen

7. Textcodierung

In dieser praktischen Übung speichern Sie auf Ihrem Computer eine Textdatei und überprüfst anschliessend, ob die in der Datei gespeicherten Bits tatsächlich der Unicode/UTF-8-Codierung des Texts entsprechen.

1. Texteditor öffnen

Der Editor ist eine App, in welcher man Textdateien erstellen und bearbeiten kann. Das kann man auch mit Word, dies ist jedoch umständlicher. Word-Dateien sind keine reinen Textdateien, sie enthalten auch andere Daten wie Formatierungen und Bilder.

Starten Sie die Editor-App, indem Sie im Startmenü nach «editor» suchen:

2. Text eingeben

Geben Sie einen kurzen Text ein. Dieser sollte nicht nur ASCII-Zeichen enthalten, sondern auch ein Umlaut wie «ä» und Emojis.

Emojis können unter Windows mit dem Tastenkürzel + . eingefügt werden.

Alternativ findet man unter 👉 Emojipedia viele weitere Emojis.

3. Textdatei speichern

Speichern Sie die Textdatei unter dem Namen Unicode-Test.txt indem Sie

  • die Tastenkombination Ctrl+s drücken oder

  • den Menüpunkt Datei > Speichern auswählen.

4. Datei als Bytes betrachten

Mit dem Online-Tool HexEd.it können Sie eine beliebige Datei Byte für Byte betrachten:

Klicken Sie auf Datei öffnen und wählen Sie die vorhin gespeicherte Textdatei aus. Nun sehen Sie die einzelnen Bytes, welche die Datei enthält, beispielsweise:

54 73 63 68 C3 BC 73 73 20 F0 9F 98 80 21

Die Bytes werden wie in der Informatik üblich als Hexadezimalzahlen angegeben. Wenn man über die einzelnen Bytes navigiert (mit den Pfeiltasten), sieht man auf der linken Seite die entsprechende Binärcodierung. Alternativ finden Sie hier auch einen Umrechner zwischen Binär-, Dezimal- und Hexadezimalzahlen.

⭐️ Hexadezimal Zahlen

Anstatt Zahlen im Dezimalsystem oder Binärsystem zu schreiben, kann auch das Hexadezimalsystem mit 16 eindeutigen Zeichen verwendet werden. Dabei werden die zehn Zahlenziffern mit den ersten 6 Buchstaben des Alphabets ergänzt:

Hex16Hex_{16}0123456789ABCDEF
Dez10Dez_{10}0123456789101112131415
Bin2Bin_{2}0000000100100011010001010110011110001001101010111100110111101111

Jede Stelle in einer Hexadezimal-Zahl entspricht hier einer 16er Potenz:

A3D16=A162+3161+D160=10256+316+131=2560+48+13=262110\begin{aligned} A3D_{16} &= A \cdot 16^2 + 3 \cdot 16^1 + D \cdot 16^0 \\ &= 10 \cdot 256 + 3 \cdot 16 + 13 \cdot 1 \\ &= 2560 + 48 + 13 \\ &= 2621_{10} \end{aligned}

Anwendungsbereich

Das praktische bei Hexadezimalzahlen: 4 bits können mit nur einer Hexadezimalzahl geschrieben werden, was deutlich übersichtlicher wird:

11012=1310=D161101_{2} = 13_{10} = D_{16}

Ein Byte (8 bits) werden dann konventionell als zwei Hexadezimal Zahlen geschrieben:

1101 1001 = D9
F5 = 1111 1001

Dec - Bin - Hex

Text: Hex - Bin

Hexadezimal

Binär

In der binären Darstellung sehen Sie sofort die Zeichen, welche mehrere Bytes benötigen. Sie beginnen mit einer 1. So ist 11000011 10111100 die Codierung des Buchstabens «ü».

Nun können Sie mit folgenden Hilfsmitteln überprüfen, ob die Bytes tatsächlich der Unicode/UTF-8-Codierung Ihres Textes entsprechen:

Hinweis

Im vorliegenden Beispiel sieht das so aus:

Byte(s)Zeichen
54T
73s
63c
68h
C3 BCü
73s
73s
20
F0 9F 98 80😀
21!
⭐️ Zusatzaufgabe - Andere Dateien

Betrachten Sie andere Dateien in HexEd.it und achten Sie auf folgendes:

  • Finden Sie in anderen Dateien auch Unicode-codierten Text?

  • Erkennen Sie ein Muster bei den ersten paar Bytes von Dateien des gleichen Typs?