Zeichenkodierung (ITG/slu)

Aischylos, Agamemnon: Nachricht vom Fall Trojas

Ganz zu Beginn der Tragödie spricht ein Wächter:

/var/cache/html/dhlehre/html/wp content/uploads/2015/10/1510561369 Aischylos agamemnon v10

καὶ νῦν φυλάσσω λαμπάδος τὸ ξύμβολον, αὐγὴν πυρὸς φέρουσαν ἐκ Τροίας φάτιν / ἁλώσιμόν τε βάξιν·

Übersetzung: „And now I’m looking out for the agreed beacon-signal, the gleam of fire bringing from Troy the word and news of its capture“

Text und Übersetzung Ed. Loeb; das griechische Zitat ist von der Loeb-Website mit copy/paste in dh-Lehre übernommen worden. Man beachte die unterschiedliche Darstellung der Vokale mit Gravis und mit Akut.

Polybios, um 150 v. Chr. – 

Murray Shutter Telegraph

/var/cache/html/dhlehre/html/wp content/uploads/2015/10/1510556148 20170412 163155

/var/cache/html/dhlehre/html/wp content/uploads/2015/10/1510556411 20170412 164633

 

0.1. Morsecode

Eine sehr frühe Form (Samuel Morse, 1833) der Zeichenkodierung liegt im Morsecode vor, der dafür gedacht war, Schriftzeichen unter Verwendung analoger Kanäle (Licht, Schall, elektrischer Strom) zu übermitteln. Das deutsche Wort „SÜß“ sieht in Morsekodierung folgendermaßen aus (ein Punkt steht für ein kurzes [sog. „dit“], ein Strich für ein langes Signal [„dah“]; eine Unterscheidung zwischen Groß- und Kleinbuchstaben ist nicht möglich): · · · <pause> · · − − <pause> · · · − − · ·

S Ü ß
· · · · · − −  · · · − − · ·

Die Länge eines „dah“ beträgt die Länge von genau drei „dit“. Zwischen den Zeichen erfolgt eine Pause („Schweigen“) von genau einem „dit“. Zwischen Wörtern wird eine Pause von sieben „dit“ eingefügt. Im Unterschied zur digitalen Informationskodierung, die mit einem Signalrepertoire von nur zwei Zeichen auskommen muss (0,1), stehen demnach im Morsecode drei „Zeichen“ zur Verfügung: dit, dah, Pause. Nur deshalb können im Morsecode, anders als bei digitaler Informationskodierung, Zeichen durch eine jeweils unterschiedliche Anzahl an Zeichen kodiert werden (· = E; − · − − = Y).

0.2. ASCII

American Standard Code for Information Interchange, Erstveröffentlichung am 17. Juni 1963, letzte Aktualisierung im Jahr 1968. Seither stabil. 7-Bit-Kodierung => 128 Zeichen kodierbar.

0.3. Übersicht 1 (Auszug aus der ITG-Unicode-Datenbank):

0.4. Übersicht 2:

N:SharesWebDHLehrehtml/wp content/uploads/2015/11/1446468594 Asciifull

N:SharesWebDHLehrehtml/wp content/uploads/2015/11/1446468594 Asciifull

0.5. Unicode

Eine Codepage, die die bei der Zahl 127 endende Liste des ASCII-Codes nach oben öffnet und erweitert (Version 1.0.0 erschien im Oktober 1991). Die Unicodetabelle endet derzeit (2015) bei der dezimalen Zahl 1.114.109, d.h. Unicode bietet theoretisch Raum für über eine Million zu kodierende Zeichen. Aktuell (Oktober 2015) sind rund 120.000 Zeichen definiert.

0.5.1. Die Unicode-„Plains“

Der von Unicode umfasste Zahlenraum ist nach arithmetischen Kriterien in sog. „Plains“ („Ebenen“) unterteilt:

0.5.2. Die Unicode-Blöcke

Neben der Gliederung in Plains besteht innerhalb von Unicode eine Unterteilung in Blöcke, die sich an den Kategorien der kodierten Zeichensysteme orientiert:

 

Die folgende Grafik (Quelle: Wikipedia) veranschaulicht sehr schön die systematische Verteilung der Schriftsysteme im Schema der Unicode-Plains:

/var/cache/html/dhlehre/html/wp content/uploads/2016/04/1461682158 Unicode planes grafik

/var/cache/html/dhlehre/html/wp content/uploads/2016/04/1461682158 Unicode planes grafik

Für die Abbildung der von Unicode verwendeten Zahlen auf die von Computern ausschließlich verwendeten und jeweils zu Einheiten von acht „Bits“ zusammgefassten binären Zahlen wurden verschiedene Verfahren entwickelt, die man als „Unicode Transformation Formats“ (UTF) bezeichnet. Das derzeit am weitesten verbreitete UTF ist UTF-8.

0.6. Kodierung des Zeilenendes

Das Ende einer Textzeile wird bis heute von verschiedenen Betriebssystemen unterschiedlich kodiert. Der folgende Haiku wurde der Webseite https://de.wikipedia.org/wiki/Haiku entnommen und in jeweils einer Windows- und einer Unix-kodierten Textdatei abgespeichert. Das Unix-Kommando xxd erlaubt die hexadezimale Darstellung der Dateiinhalte (sog. „Hexdump“). Haiku:

Ab der Mittagszeit
ist es etwas schattiger
ein Wolkenhimmel

Windows: 0d 0a (= CR LF = \r\n) (Datei haiku_windows_0d0a):

slu@PCROMLAB1301:Texte$xxd -g 1 haiku_windows_0d0a.txt
0000000: 41 62 20 64 65 72 20 4d 69 74 74 61 67 73 7a 65 Ab der Mittagsze
0000010: 69 74 0d 0a 69 73 74 20 65 73 20 65 74 77 61 73 it..ist es etwas
0000020: 20 73 63 68 61 74 74 69 67 65 72 0d 0a 65 69 6e schattiger..ein
0000030: 20 57 6f 6c 6b 65 6e 68 69 6d 6d 65 6c 0d 0a    Wolkenhimmel..

Unixsysteme inklusive Mac OS X: 0a (= LF = \n) (Datei haiku_unix_0a):

slu@PCROMLAB1301:Texte$xxd -g 1 haiku_unix_0a.txt
0000000: 41 62 20 64 65 72 20 4d 69 74 74 61 67 73 7a 65 Ab der Mittagsze
0000010: 69 74 0a 69 73 74 20 65 73 20 65 74 77 61 73 20 it.ist es etwas
0000020: 73 63 68 61 74 74 69 67 65 72 0a 65 69 6e 20 57 schattiger.ein W
0000030: 6f 6c 6b 65 6e 68 69 6d 6d 65 6c 0a             olkenhimmel.

In beiden Texten ist das Wort „schattiger“ unterstrichen. Im Fall der Windows-kodierten Datei besteht die Gefahr, dass der 0d-Wert bei einer automatisierten Tokenisierung durch ein Unix-System (auch Cygwin) als Bestandteil des Wortes „schattiger“ betrachtet wird. Eine entsprechende Tokenliste sähe dann folgendermaßen aus (die Zahlenwerte 20 [= Blank] und 0a fungieren als Separatoren und sind daher verschwunden):

41 62                                        Ab
64 65 72                                     der
4d 69 74 74 61 67 73 7a 65 69 74 0d          Mittagszeit
69 73 74                                     ist
65 73                                        es
65 74 77 61 73                               etwas
73 63 68 61 74 74 69 67 65 72 0d             schattiger
65 69 6e                                     ein
57 6f 6c 6b 65 6e 68 69 6d 6d 65 6c 0d       Wolkenhimmel

Eine Suche nach dem Wort „schattiger“ in o.a. Tokenliste würde keinen Treffer ergeben, da keine exakte Übereinstimmung in der numerischen Repräsentation zwischen Suchmuster und gespeichertem Token vorhanden ist:

Suchmuster                           Token
73 63 68 61 74 74 69 67 65 72        73 63 68 61 74 74 69 67 65 72 0d

Das selbe Phänomen/Problem träte im gegebenen Beispiel auch bei den Tokens „Mittagszeit“ und „Wolkenhimmel“ auf.

Manche, heute kaum noch verwendete Betriebssysteme wie z.B. ältere Apple-Betriebssysteme (bis Version 9), kodieren das Zeilenende auch mit einem einzelnen 0d. Auch wenn diese Betriebssysteme selbst nicht mehr eingesetzt werden, kann es sein, dass es noch entsprechende Dateien gibt.

0.7. Konfiguration des Editors VIM

Die folgenden VIM-spezifischen Einstellungen beeinflussen das Verhalten dieses Editors im Umgang mit der Zeichenkodierung:

# Datei in utf-8-Kodierung
:se fileencoding=utf-8
# Datei mit Kodierung des Zeilenendes nach Windows-Konvention:
:se fileformat=dos

# Datei mit Kodierung des Zeilenendes nach Windows-Konvention:
:se fileformat=unix
# Datei ohne BOM
:se nobomb

# Datei mit BOM
:se bomb

Empfehlenswerte Standardeinstellungen für den Editor Vim sind in folgender Konfigurationsdatei enthalten (muss im Homeverzeichnis abgelegt werden):

Für Windowsrechner: http://www.kit.gwi.uni-muenchen.de/wp-content/uploads/2015/03/_vimrc

Für Linux/Unixrechner: http://www.kit.gwi.uni-muenchen.de/wp-content/uploads/2015/03/.vimrc

Auch Microsoft Word erlaubt beim Speichern von reinen Textdateien („Speichern unter…“ -> „Nur Text“) die Beeinflussung der Zeichen- und Zeilenendkodierung:

N:SharesWebDHLehrehtml/wp content/uploads/2015/12/1450369487 Word nurText optionen

N:SharesWebDHLehrehtml/wp content/uploads/2015/12/1450369487 Word nurText optionen

Schreibe einen Kommentar