Was sind Zeichencodierungen wie ANSI und Unicode und wie unterscheiden sie sich?
Veröffentlicht: 2022-01-29ASCII, UTF-8, ISO-8859 … Sie haben vielleicht schon diese seltsamen Moniker gesehen, aber was bedeuten sie eigentlich? Lesen Sie weiter, während wir erklären, was Zeichenkodierung ist und wie sich diese Akronyme auf den Klartext beziehen, den wir auf dem Bildschirm sehen.
Grundlegende Bausteine
Wenn wir über geschriebene Sprache sprechen, sprechen wir davon, dass Buchstaben die Bausteine von Wörtern sind, die dann Sätze, Absätze usw. bilden. Buchstaben sind Symbole, die Töne darstellen. Wenn Sie über Sprache sprechen, sprechen Sie über Gruppen von Lauten, die zusammenkommen, um eine Art Bedeutung zu bilden. Jedes Sprachsystem hat einen komplexen Satz von Regeln und Definitionen, die diese Bedeutungen regeln. Wenn Sie ein Wort haben, ist es nutzlos, wenn Sie nicht wissen, aus welcher Sprache es stammt, und Sie es mit anderen verwenden, die diese Sprache sprechen.
(Vergleich der Schriften Grantha, Tulu und Malayalam, Bild aus Wikipedia)
In der Welt der Computer verwenden wir den Begriff „Charakter“. Ein Zeichen ist eine Art abstraktes Konzept, das durch bestimmte Parameter definiert wird, aber es ist die grundlegende Bedeutungseinheit. Das lateinische „A“ ist nicht dasselbe wie ein griechisches „alpha“ oder ein arabisches „alif“, weil sie unterschiedliche Kontexte haben – sie stammen aus unterschiedlichen Sprachen und haben leicht unterschiedliche Aussprachen – also können wir sagen, dass sie unterschiedliche Zeichen sind. Die visuelle Darstellung eines Zeichens wird als „Glyphe“ bezeichnet, und verschiedene Gruppen von Glyphen werden als Schriftarten bezeichnet. Zeichengruppen gehören zu einem „Set“ oder einem „Repertoire“.
Wenn Sie einen Absatz eingeben und die Schriftart ändern, ändern Sie nicht die phonetischen Werte der Buchstaben, sondern ihr Aussehen. Es ist nur Kosmetik (aber nicht unwichtig!). Einige Sprachen, wie Altägyptisch und Chinesisch, haben Ideogramme; Diese repräsentieren ganze Ideen anstelle von Tönen, und ihre Aussprache kann sich über Zeit und Entfernung ändern. Wenn Sie ein Zeichen durch ein anderes ersetzen, ersetzen Sie eine Idee. Es ist mehr als nur das Ändern von Buchstaben, es ändert ein Ideogramm.
Zeichenkodierung
(Bild aus Wikipedia)
Wenn Sie etwas auf der Tastatur eingeben oder eine Datei laden, woher weiß der Computer, was angezeigt werden soll? Dafür ist die Zeichenkodierung da. Text auf Ihrem Computer besteht eigentlich nicht aus Buchstaben, sondern aus einer Reihe gepaarter alphanumerischer Werte. Die Zeichencodierung fungiert als Schlüssel dafür, welche Werte welchen Zeichen entsprechen, ähnlich wie die Rechtschreibung vorschreibt, welche Laute welchen Buchstaben entsprechen. Morsecode ist eine Art Zeichenkodierung. Es erklärt, wie Gruppen von langen und kurzen Einheiten wie Pieptöne Zeichen darstellen. Im Morsecode sind die Zeichen nur englische Buchstaben, Zahlen und Punkte. Es gibt viele Computerzeichencodierungen, die in Buchstaben, Zahlen, Akzentzeichen, Satzzeichen, internationale Symbole usw. übersetzt werden.
Häufig wird zu diesem Thema auch der Begriff „Codepages“ verwendet. Sie sind im Wesentlichen Zeichencodierungen, wie sie von bestimmten Unternehmen verwendet werden, oft mit geringfügigen Modifikationen. Beispielsweise ist die Codepage von Windows 1252 (früher bekannt als ANSI 1252) eine modifizierte Form von ISO-8859-1. Sie werden hauptsächlich als internes System verwendet, um auf Standard- und modifizierte Zeichencodierungen zu verweisen, die für dieselben Systeme spezifisch sind. Früher war die Zeichenkodierung nicht so wichtig, weil Computer nicht miteinander kommunizierten. Da das Internet immer mehr an Bedeutung gewinnt und Networking alltäglich wird, wird es zu einem immer wichtigeren Teil unseres täglichen Lebens, ohne dass wir es überhaupt merken.
Viele verschiedene Arten
(Bild von Sarah Sosiak)
Es gibt viele verschiedene Zeichenkodierungen, und dafür gibt es viele Gründe. Welche Zeichenkodierung Sie wählen, hängt von Ihren Anforderungen ab. Wenn Sie auf Russisch kommunizieren, ist es sinnvoll, eine Zeichenkodierung zu verwenden, die Kyrillisch gut unterstützt. Wenn Sie auf Koreanisch kommunizieren, möchten Sie etwas, das Hangul und Hanja gut repräsentiert. Wenn Sie Mathematiker sind, möchten Sie etwas, das alle wissenschaftlichen und mathematischen Symbole sowie die griechischen und lateinischen Glyphen gut darstellt. Wenn Sie ein Witzbold sind, würden Sie vielleicht von auf dem Kopf stehenden Text profitieren. Und wenn Sie möchten, dass alle diese Arten von Dokumenten von einer bestimmten Person angezeigt werden, benötigen Sie eine Codierung, die ziemlich verbreitet und leicht zugänglich ist.
Werfen wir einen Blick auf einige der häufigsten.
(Auszug aus ASCII-Tabelle, Bild von asciitable.com)
- ASCII – Der American Standard Code for Information Interchange ist eine der älteren Zeichenkodierungen. Es wurde ursprünglich auf der Grundlage telegrafischer Codes entwickelt und im Laufe der Zeit weiterentwickelt, um mehr Symbole und einige inzwischen veraltete nicht gedruckte Steuerzeichen aufzunehmen. Es ist wahrscheinlich so einfach wie möglich in Bezug auf moderne Systeme, da es auf das lateinische Alphabet ohne akzentuierte Zeichen beschränkt ist. Seine 7-Bit-Kodierung erlaubt nur 128 Zeichen, weshalb weltweit mehrere inoffizielle Varianten im Einsatz sind.
- ISO-8859 – Die am weitesten verbreitete Gruppe von Zeichencodierungen der International Organization for Standardization ist die Nummer 8859. Jede spezifische Codierung wird durch eine Zahl gekennzeichnet, der häufig ein beschreibender Spitzname vorangestellt ist, z. B. ISO-8859-3 (Latin-3), ISO- 8859-6 (Latein/Arabisch). Es ist eine Obermenge von ASCII, was bedeutet, dass die ersten 128 Werte in der Codierung mit ASCII identisch sind. Es ist jedoch 8-Bit und erlaubt 256 Zeichen, also baut es von dort aus auf und enthält eine viel breitere Palette von Zeichen, wobei sich jede spezifische Codierung auf einen anderen Satz von Kriterien konzentriert. Latin-1 enthielt eine Reihe von akzentuierten Buchstaben und Symbolen, wurde aber später durch einen überarbeiteten Satz namens Latin-9 ersetzt, der aktualisierte Glyphen wie das Euro-Symbol enthält.

(Auszug aus tibetischer Schrift, Unicode v4, von unicode.org)
- Unicode – Dieser Kodierungsstandard zielt auf Universalität ab. Es enthält derzeit 93 Skripte, die in mehreren Blöcken organisiert sind, und viele weitere sind in Arbeit. Unicode funktioniert anders als andere Zeichensätze, da jeder Wert nicht direkt für eine Glyphe kodiert, sondern weiter zu einem „Codepunkt“ geleitet wird. Dies sind Hexadezimalwerte, die Zeichen entsprechen, aber die Glyphen selbst werden vom Programm, z. B. Ihrem Webbrowser, getrennt bereitgestellt. Diese Codepunkte werden üblicherweise wie folgt dargestellt: U+0040 (was übersetzt „@“ bedeutet). Spezifische Kodierungen unter dem Unicode-Standard sind UTF-8 und UTF-16. UTF-8 versucht, maximale Kompatibilität mit ASCII zu ermöglichen. Es ist 8-Bit, lässt aber alle Zeichen über einen Substitutionsmechanismus und mehrere Wertepaare pro Zeichen zu. UTF-16 verzichtet auf perfekte ASCII-Kompatibilität für eine vollständigere 16-Bit-Kompatibilität mit dem Standard.
- ISO-10646 – Dies ist keine eigentliche Kodierung, sondern nur ein Zeichensatz von Unicode, der von der ISO standardisiert wurde. Es ist vor allem deshalb wichtig, weil es das von HTML verwendete Zeichenrepertoire ist. Einige der fortgeschritteneren Funktionen von Unicode, die eine Sortierung und rechts-nach-links neben links-nach-rechts-Skripting ermöglichen, fehlen. Dennoch funktioniert es sehr gut für die Verwendung im Internet, da es die Verwendung einer Vielzahl von Skripten ermöglicht und es dem Browser ermöglicht, die Glyphen zu interpretieren. Das erleichtert die Lokalisierung etwas.
Welche Kodierung sollte ich verwenden?
Nun, ASCII funktioniert für die meisten englischsprachigen Personen, aber nicht für viel mehr. Häufiger werden Sie ISO-8859-1 sehen, das für die meisten westeuropäischen Sprachen funktioniert. Die anderen Versionen von ISO-8859 funktionieren für kyrillische, arabische, griechische oder andere spezifische Schriften. Wenn Sie jedoch mehrere Skripte im selben Dokument oder auf derselben Webseite anzeigen möchten, ermöglicht UTF-8 eine viel bessere Kompatibilität. Es funktioniert auch sehr gut für Leute, die die richtige Interpunktion, mathematische Symbole oder spontane Zeichen wie Quadrate und Kontrollkästchen verwenden.
(Mehrere Sprachen in einem Dokument, Screenshot von gujaratsamachar.com)
Es gibt jedoch Nachteile für jedes Set. ASCII ist in seinen Satzzeichen begrenzt, daher eignet es sich nicht besonders gut für typografisch korrekte Bearbeitungen. Haben Sie jemals Kopieren/Einfügen aus Word eingegeben, nur um eine seltsame Kombination von Glyphen zu erhalten? Das ist der Nachteil von ISO-8859, oder genauer gesagt, seine angebliche Interoperabilität mit betriebssystemspezifischen Codepages (wir meinen hier SIE, Microsoft!). Der größte Nachteil von UTF-8 ist die fehlende Unterstützung beim Bearbeiten und Veröffentlichen von Anwendungen. Ein weiteres Problem besteht darin, dass Browser die Byte-Order-Markierung eines UTF-8-codierten Zeichens oft nicht interpretieren und nur anzeigen. Dies führt dazu, dass unerwünschte Glyphen angezeigt werden. Und natürlich macht es das Deklarieren einer Codierung und das Verwenden von Zeichen einer anderen, ohne sie auf einer Webseite richtig zu deklarieren/referenzieren, für Browser schwierig, sie korrekt wiederzugeben, und für Suchmaschinen, sie angemessen zu indizieren.
Für Ihre eigenen Dokumente, Manuskripte usw. können Sie alles verwenden, was Sie zum Erledigen der Arbeit benötigen. Soweit es das Web betrifft, scheinen sich die meisten Leute darauf zu einigen, eine UTF-8-Version zu verwenden, die keine Byte-Order-Markierung verwendet, aber das ist nicht ganz einig. Wie Sie sehen können, hat jede Zeichencodierung ihre eigene Verwendung, ihren eigenen Kontext sowie ihre eigenen Stärken und Schwächen. Als Endbenutzer müssen Sie sich wahrscheinlich nicht damit befassen, aber jetzt können Sie den zusätzlichen Schritt nach vorne machen, wenn Sie dies wünschen.