Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Zeichenkodierung

Eine Zeichenkodierung (englisch character encoding, kurz encoding) erlaubt die eindeutige Zuordnung von Schriftzeichen (i. A. Buchstaben oder Ziffern) und …

Inhalt6 Abschnitte
  1. 1. Grundprinzip
  2. 2. Historische Entwicklung
  3. 3. Computer und Standards
  4. 4. Darstellung auf dem Bildschirm
  5. 5. Begriffe seit Unicode
  6. 6. Unicode-Kodierungen

Grundprinzip

Eine Zeichenkodierung ordnet Schriftzeichen und Symbolen innerhalb eines Zeichensatzes eindeutig Zahlenwerte zu. In der elektronischen Datenverarbeitung ist das nötig, damit Zeichen gespeichert, übertragen und später wieder richtig dargestellt werden können. Ein Zahlenwert allein genügt nicht: Der deutsche Umlaut Ü hat im Zeichensatz ISO-8859-1 den Dezimalwert 220, im Zeichensatz EBCDIC steht derselbe Wert 220 aber für die geschweifte Klammer }. Deshalb muss immer bekannt sein, welche Zeichenkodierung verwendet wird.

Zahlenwerte aus Zeichenkodierungen können auf verschiedene Weise gespeichert oder übertragen werden, zum Beispiel als Morsezeichen, durch verschieden hohe Töne bei einem Faxgerät oder durch verschieden hohe elektrische Spannungen. Binäre Systeme sind besonders wichtig, weil bei mehr Basiselementen eines Codes die Gefahr von Verwechslungen steigt. Der ältere Begriff Zeichenverschlüsselung wurde früher teilweise verwendet, ist heute aber unüblich, weil er leicht mit Kryptographie verwechselt werden kann.

Historische Entwicklung

Die Grundidee, Zeichen oder Nachrichten durch vereinbarte Signale zu kodieren, ist sehr alt. Beispiele aus der Antike und frühen Nachrichtentechnik sind Feuerzeichen, Rauchzeichen und Trommelzeichen. Auch in der Nautik wurden solche Techniken weiterentwickelt, besonders zur Verständigung von Schiffsverbänden. Sir Walter Raleigh erfand 1617 für sein Geschwader auf der Südamerikafahrt eine Art Vorläufer der Flaggencodierung. 1648 führte der spätere englische König James II. das erste Signalflaggensystem in der britischen Marine ein.

Mit der Telegrafie wurde eine systematische Zeichenkodierung besonders wichtig. Aus Ideen des Engländers Alfred Brain entstanden 1837 der originale Morsecode und 1844 der modifizierte Morsecode. Später definierte das CCITT, das Comité Consultatif International Telegraphique et Telephonique, als erste Institution einen standardisierten Zeichensatz. Dieser beruhte auf dem Baudot-Code, einem 5er-Code-Alphabet, das Jean-Maurice-Émile Baudot 1870 für seinen Synchrontelegraphen entwickelt hatte. Das Prinzip dieses Codes wird laut Artikel noch heute verwendet.

Computer und Standards

Mit der Entwicklung des Computers wurde die binäre Zeichenkodierung in Bit-Folgen umgesetzt. Intern können diese Bit-Folgen zum Beispiel durch verschiedene elektrische Spannungswerte unterschieden werden. Damit aus solchen Bit-Folgen darstellbare Zeichen werden, braucht man Übersetzungstabellen, sogenannte Zeichensätze oder englisch Charsets.

1963 definierte die ASA, die American Standards Association, eine erste 7-Bit-Version des ASCII-Codes. Ziel war eine Vereinheitlichung der Zeichenkodierung. Obwohl IBM an dieser Definition beteiligt war, führte das Unternehmen 1964 mit EBCDIC einen eigenen 8-Bit-Zeichencode ein. Beide werden bis heute in der Computertechnik verwendet.

Da viele Sprachen unterschiedliche diakritische Zeichen benötigen, also Zusatzzeichen zur Veränderung lateinischer Buchstaben, entstanden für viele Sprachgruppen eigene Zeichensätze. Die ISO standardisierte mit der Normenreihe ISO 8859 Zeichenkodierungen für alle europäischen Sprachen einschließlich Türkisch sowie für Arabisch, Hebräisch und Thai. 1991 veröffentlichte das Unicode Consortium die erste Fassung des Unicode-Standards, dessen Ziel es ist, alle Zeichen aller Sprachen in Codeform zu definieren. Unicode ist zugleich die internationale Norm ISO 10646.

Vor der elektronischen Verarbeitung eines Textes müssen Zeichensatz und Zeichenkodierung festgelegt werden. Das kann zum Beispiel in einer HTML-Seite mit charset=UTF-8 oder in den Headern einer E-Mail beziehungsweise eines HTTP-Pakets mit Angaben wie Content-Type: text/plain; charset=ISO-8859-1 geschehen.

Darstellung auf dem Bildschirm

Eine korrekte Zeichenkodierung und Dekodierung reicht allein nicht aus, damit ein Zeichen auf einem Bildschirm richtig erscheint. Zusätzlich muss eine passende Schriftart vorhanden sein, die die Zeichen des Zeichensatzes enthält. Eine Glyphe ist die grafische Darstellung eines einzelnen Schriftzeichens. Damit ein Text korrekt angezeigt wird, müssen also Kodierung, Dekodierung und verfügbare Schriftzeichen zusammenpassen.

Begriffe seit Unicode

Mit Unicode mussten Zeichen oft durch mehr als ein Byte dargestellt werden. Dadurch wurden genauere Begriffe nötig. Im Deutschen werden Zeichensatz, Code, Kodierung und Encoding manchmal gleichbedeutend und manchmal differenziert verwendet. Im Englischen sind die Unterscheidungen klarer.

Ein Zeichensatz, englisch character set oder character repertoire, ist eine Menge S verschiedener Schriftzeichen. Eine Codemenge oder ein Coderaum, englisch code space, ist eine Menge M numerischer Werte, die zum Kodieren von Zeichen verfügbar sind. Ein Zeichencode, englisch coded character set oder codepage, verbindet einen Zeichensatz S mit einer Codemenge M und einer injektiven Abbildung der Zeichen aus S auf Zahlen in M. Injektiv bedeutet hier: Es gibt keine mehrfache Zuordnung desselben Codes zu verschiedenen Zeichen. Ein Codepunkt ist ein einzelner Wert aus der Codemenge M. Ein codiertes Zeichen besteht aus einem Zeichen aus S zusammen mit seinem Codepunkt aus M. Ein Text wird durch die Codepunkte seiner Schriftzeichen dargestellt, also als Zahlenfolge aus M.

Für die Darstellung der Codepunkte im Rechner braucht man weitere Begriffe. Eine Codeeinheit ist die kleinste Speichergröße für Codepunkte, zum Beispiel 8 Bits bei UTF-8 und 16 Bits bei UTF-16. Ein Codepunkt kann durch eine oder mehrere Codeeinheiten dargestellt werden. Eine encoding form oder character encoding form bildet Codepunkte auf Codeeinheiten ab, zum Beispiel UTF-16. Ein encoding scheme oder character encoding scheme kombiniert diese encoding form mit der Byte-Reihenfolge, also big-endian oder little-endian; ein Beispiel ist UTF-16LE.

Unicode-Kodierungen

In einfachen Fällen gibt es höchstens 256 = 2^8 Codepunkte. Dann kann jeder Codepunkt in einem Byte gespeichert werden, zum Beispiel bei einem der in ISO 8859 definierten Zeichencodes. Bei Unicode ist das nicht möglich, weil der Zeichensatz weit mehr als 256 Zeichen enthält. Häufige Encodings sind UTF-8, UTF-16, UCS-2 und UTF-32.

Bei UTF-16 werden Codepunkte zwischen 0 und 2^16−1 in zwei Byte gespeichert, größere Codepunkte in vier Byte. Weil die Elemente mehr als ein Byte lang sind, gibt es mindestens die zwei Schemen UTF-16BE für big-endian und UTF-16LE für little-endian. Sie unterscheiden sich in der Reihenfolge der Bytes innerhalb einer Codeeinheit. UTF-32 verwendet immer vier Byte für jeden Codepunkt. UTF-8 verwendet je nach Codepunkt zwischen einem und vier Byte. Die Codepunkte 0 bis 127 werden in einem einzigen Byte gespeichert; dadurch ist UTF-8 bei vielen Texten mit lateinischen Buchstaben platzsparend, weil diese ASCII-Zeichen besonders häufig vorkommen.

Weitere Verfahren sind SCSU, BOCU und Punycode. Komplexe Schemen wie ISO/IEC 2022 können zwischen mehreren Varianten wechseln. Zur eindeutigen Angabe der Byte-Reihenfolge wird besonders auf Windows-Systemen oft ein BOM, byte order mark, vorangestellt: FF FE bei UTF-16LE, FE FF bei UTF-16BE und EF BB BF bei UTF-8. Der Unicode-Standard empfiehlt jedoch, BOMs in UTF-8, sofern nicht anders gefordert, wegen technischer Probleme zu vermeiden und möglichst aus Texten zu entfernen.

Ein Beispiel ist das chinesische Schriftzeichen für Berg, 山 shān. Es hat im Unicode den Codepunkt U+5C71 und benötigt zur Darstellung 15 Bit. Mit UTF-16 wird es als eine Codeeinheit abgelegt: big-endian als 5C 71, little-endian als 71 5C. Mit UTF-8 stehen die drei Codeeinheiten E5 B1 B1 im Speicher. Die meisten Texte sind heute in einer der drei Unicode-Kodierungen UTF-8, UTF-16BE oder UTF-16LE gespeichert, was den Umgang mit Texten wesentlich erleichtert.

Weiterlesen

Symbol Religiöse Symbole sind konstitutive Elemente religiöser Identifikation, Sprache und Handlungen. ... Mythen, Symbole und Zeichen in Kultur, Religion, Kunst … Zeichensatz Traditionell in der Informatik bekannte Zeichenkodierungen sind der ASCII- und der EBCDIC-Code. Letzterer hat allerdings stark an Bedeutung verloren … Datenspeicher Chemo-optische Speicher, die durch einen chemischen Prozess Daten in Form von Lichtbildern (statischen und bewegten Bildern sowie Lichtton) speichern. Die … Morsecode Der Morsecode (auch: Morsealphabet oder Morsezeichen genannt, selten geschrieben auch: Morsekode) ist ein früher sehr gebräuchlicher Telegrafencode zur … Elektrische Spannung Die elektrische Spannung (kurz Spannung, fachsprachlich falsch auch Stromspannung genannt) ist eine grundlegende physikalische Größe der Elektrotechnik und … Binärcode Ein Binärcode ist ein Code, in dem Informationen durch Sequenzen von zwei verschiedenen Symbolen (zum Beispiel 1/0 oder wahr/falsch) dargestellt werden. Kryptographie Symmetrische Verfahren verwenden wie klassische kryptographische Verfahren einen geheimen Schlüssel pro Kommunikationsbeziehung und für alle Operationen (z. B. Antike Die Antike (von lateinisch antiquus ‚alt, altertümlich, altehrwürdig') war eine Epoche im Mittelmeerraum, die etwa von 800 v. Chr. bis 600 n. Agamemnon Inhaltsverzeichnis · 1 Mythos · 2 Genealogie · 3 Goldmaske des Agamemnon · 4 Namensgebung · 5 Trivia · 6 Literatur · 7 Weblinks · 8 Einzelnachweise … Indianer Indianer ist eine Sammelbezeichnung für die bei weitem größte Gruppe der bereits vor der europäischen Kolonialisierung in Amerika lebenden Menschen. Afrika Afrika ist einer der Kontinente der Erde. Seine Fläche von 30,2 Millionen km² entspricht etwa 20 % der gesamten Landfläche des Planeten, … England England · 1 Etymologie · 2 Geographie. 2.1 Klima; 2.2 Flora und Fauna · 3 Geschichte. 3.1 Vor der Römerzeit; 3.2 Römerzeit und Christianisierung · 4 Bevölkerung.