Binärdarstellung von Texten

Im Lauf der Zeit haben sich verschiedene teilweise konkurrierende und teilweise aufeinander aufbauende Codierungen zur Speicherung von Texten entwickelt. Wir werden vor allem die Zeichensätze betrachten, die im Internet von Bedeutung sind. Daneben gibt es aber auch noch weitere Varianten wie z.B. unter Windows o.ä. üblich.

ASCII

Aufgabe 1

Informiere Dich über den ASCII-Zeichensatz und beantworte zusammenhängend folgende Fragen:

  1. Wie viele Bits werden beim ASCII-Zeichensatz benutzt? Wie viele Zeichen kann man damit darstellen? Begründe kurz mathematisch. 
  2. Wie viele Bits werden üblicherweise in einem Rechner als kleinste Einheit zusammengefasst und wie wird diese genannt? Warum weicht die Zahl von der ersten Teilaufgabe ab?
  3. Welchen Nachteil hat der ASCII-Zeichensatz?
  4. Eine Datei enthält die Bitfolge 01001001 01101110 01100110 01101111 00100000 01110010 01101111 01100011 01101011 01110011. Übersetze mit Hilfe des ASCII-Zeichensatzes in menschenlesbare Form. Benutze dabei ein Programm zur Umrechnung von Binär- in Hexadezimalzahlen. (z.B. Windows-Rechner oder unter www.arndt-bruenner.de/mathe/scripts/Zahlensysteme.htm)
  5. Was passiert, wenn man eine andere Tabelle statt der ASCII-Tabelle zum Dekodieren benutzt?

Aufgabe 2

Erstelle mit Hilfe eines Binär- oder Hex-Editors eine kleine Textdatei und kontrolliere den Inhalt mit Hilfe eines Texteditors.

Einen einfachen Binäreditor kannst Du Dir hier herunterladen.

ISO-8859

Da die Menge der codierbaren Zeichen im ASCII-Zeichensatz für den Alltag vor allem im nicht-englischsprachigen Raum viel zu klein ist, wurden Zeichensätze entwickelt, die auch Umlaute und andere Sonderzeichen ermöglichen. Eine der wichtigesten Codierungen wurde im ISO-8859 Standard festgelegt.

Aufgabe 3

Informiere Dich über Gemeinsamkeiten und Unterschiede von ASCII und ISO-8859.

Aufgabe 4

Erstelle in einem Hex-Editor bzw. Binäreditor einen Text, der u.a. Umlaute enthält und betrachte diesen in Firefox mit verschiedenen Zeichencodierungen. Du kannst dazu im Menü die Codierung verändern. Erkläre die auftretenden Effekte.

Unicode

ISO-8859 stellt im Vergleich zu ASCII eine Verbesserung dar. Allerdings lassen sich mit einer Version wie z.B. ISO-8859-1 immer noch zu wenig Zeichen darstellen. Um eine befriedigende Zahl an Zeichen codieren zu können, müsste man die verschiedenen Versionen kombinieren.

Es lag also nahe eine Liste von Zeichen zu definieren, welche alle relevanten Zeichen enthält. Genau das wurde mit Unicode umgesetzt. Eine Liste der Unicodezeichen findest Du z.B. unter unicode-table.com wie nachfolgend angedeutet:

Aufgabe 5

  1. Beschreibe die Abbildung. Welche Bedeutung haben die Beschriftungen der Zeilen und Spalten?
  2. Wie viele unterschiedliche Zeichen könnten auf diese Art und Weise dargestellt werden?
  3. Finde heraus wie viele Zeichen derzeit im Unicode Standard aufgenommen sind und vergleiche mit der maximal denkbaren Zahl an Zeichen.

UTF

Um die Zeichen der Liste binär zu codieren gibt es unterschiedliche Varianten wie z.B. UTF-32, UTF-16 oder UTF-8. Um diese in den nachfolgenden Experimenten zu untersuchen, benötigst Du einen Editor, der diese Codierungen beherrscht. Lade Dir dazu den Editor BabelPad herunter.

Aufgabe 6

Speichere je eine Datei mit den einzelnen Zeichen A, Ä und € ab. Verwende dazu die Codierung (Encoding) UTF-32 Big Endian ohne Byte Order Mark. Untersuche die Dateien mit dem Binäreditor und ergänze folgende Tabelle:

Zeichen A Ä
Position in ASCII-Tabelle      
ASCII (binär)      
Position in ISO 8859-1      
ISO 8859-1 binär      
Unicode Codepoint      
UTF-32 (binär)      
UTF-8 (binär)      

Erkläre die Beobachtungen. Experimentiere bei Bedarf mit weiteren Zeichen. (Optional: Experimentiere oder recherchiere zu UTF-16. Dazu kannst Du z.B. die Binärcodierung eines Violinschlüssels untersuchen.)

Aufgabe 7

Erstelle einen kurzen Text mit Umlauten im UTF-8 Format. Betrachte diesen mit Firefox in verschiedenen Zeichencodierungen und erkläre die beobachteten Effekte.

Aufgabe 8

Fasse die Ergebnisse in Bezug auf Webseiten zusammen.