ASCII und Unicode sind beide Standards, die sich auf die digitale Darstellung von Text beziehen, insbesondere auf Zeichen, aus denen Text besteht. Die beiden Standards unterscheiden sich jedoch erheblich, wobei viele Eigenschaften ihre jeweilige Erstellungsreihenfolge widerspiegeln.

Amerika gegen das Universum

Es überrascht nicht, dass der amerikanische Standardcode für den Informationsaustausch (ASCII) ein amerikanisches Publikum anspricht, das im englischen Alphabet schreibt. Es handelt sich um Buchstaben ohne Akzent wie A-Z und A-Z sowie eine kleine Anzahl von Interpunktionssymbolen und Steuerzeichen.

Insbesondere gibt es keine Möglichkeit, Lehnwörter darzustellen, die aus anderen Sprachen übernommen wurden, wie z Cafe in ASCII, ohne sie durch Ersetzen von Zeichen mit Akzent (z. Cafe). Lokalisierte ASCII-Erweiterungen wurden entwickelt, um den Anforderungen verschiedener Sprachen gerecht zu werden. Diese Bemühungen erschwerten jedoch die Interoperabilität und dehnten die Fähigkeiten von ASCII deutlich aus.

Im Gegensatz dazu liegt der Universal Coded Character Set (Unicode) am entgegengesetzten Ende der Ambitionsskala. Unicode versucht, so viele Schriftsysteme der Welt wie möglich zu bedienen, soweit es alte Sprachen und die beliebtesten Ausdruckssymbole aller, Emoji, abdeckt.

Zeichensatz oder Zeichenkodierung?

In einfachen Worten ist ein Zeichensatz eine Auswahl von Zeichen (z. B. A-Z) während eines Zeichens Das Codieren ist eine Zuordnung zwischen einem Zeichensatz und einem Wert, der digital dargestellt werden kann (z. A = 1, B = 2).

Der ASCII-Standard ist effektiv beides: Er definiert den Zeichensatz, den er darstellt, und eine Methode zum Zuordnen jedes Zeichens zu einem numerischen Wert.

Im Gegensatz dazu wird das Wort Unicode in verschiedenen Kontexten verwendet, um verschiedene Dinge zu bedeuten. Sie können sich einen umfassenden Begriff wie ASCII vorstellen, der sich auf einen Zeichensatz und eine Reihe von Codierungen bezieht. Da es jedoch mehrere Codierungen gibt, wird der Begriff Unicode häufig verwendet, um sich auf den gesamten Zeichensatz zu beziehen und nicht darauf, wie sie zugeordnet werden.

Größe

Unicode repräsentiert aufgrund seines Umfangs weit mehr Zeichen als ASCII. Standard-ASCII verwendet einen 7-Bit-Bereich, um 128 verschiedene zu codieren Figuren. Unicode hingegen ist so groß, dass wir eine andere Terminologie verwenden müssen, um darüber zu sprechen!

Unicode ist für 1.111.998 adressierbar Codepunkte. Ein Codepunkt ist ungefähr analog zu einem Platz, der für ein Zeichen reserviert ist, aber die Situation ist viel komplizierter, wenn Sie anfangen, sich mit den Details zu befassen!

Ein nützlicherer Vergleich ist, wie viele Skripte (oder Schreibsysteme) derzeit unterstützt werden. Natürlich behandelt ASCII nur das englische Alphabet, im Wesentlichen die lateinische oder römische Schrift. Die 2020 produzierte Version von Unicode geht noch viel weiter: Sie unterstützt insgesamt 154 Skripte.

Lager

Der 7-Bit-Bereich von ASCII bedeutet, dass jedes Zeichen in einem einzelnen 8-Bit-Byte gespeichert ist. Das Ersatzbit wird in Standard-ASCII nicht verwendet. Dies macht Größenberechnungen trivial: Die Länge des Texts in Zeichen entspricht der Größe der Datei in Bytes.

Sie können dies mit der folgenden Folge von Bash-Befehlen bestätigen. Zuerst erstellen wir eine Datei mit 12 Textbuchstaben:

$ echo -n 'Hallo Welt'> foo

Um zu überprüfen, ob der Text in der ASCII-Codierung vorliegt, können Sie die verwenden Datei Befehl:

$ file foo
foo: ASCII-Text ohne Zeilenabschluss

Um die genaue Anzahl der Bytes zu ermitteln, die die Datei belegt, verwenden wir die stat Befehl:

$ stat -f% z foo
12

Da der Unicode-Standard einen weitaus größeren Zeichenbereich behandelt, nimmt eine Unicode-Datei natürlich mehr Speicherplatz ein. Wie viel genau hängt von der Kodierung ab.

Das Wiederholen des gleichen Befehlssatzes von zuvor unter Verwendung eines Zeichens, das in ASCII nicht dargestellt werden kann, ergibt Folgendes:

$ echo -n '€'> foo
$ file foo
foo: UTF-8-Unicode-Text ohne Zeilenabschluss
$ stat -f% z foo
3

Dieses einzelne Zeichen belegt 3 Bytes in einer Unicode-Datei. Beachten Sie, dass bash automatisch eine UTF-8-Datei erstellt hat, da eine ASCII-Datei das ausgewählte Zeichen (€) nicht speichern kann. UTF-8 ist bei weitem die häufigste Zeichencodierung für Unicode. UTF-16 und UTF-32 sind zwei alternative Codierungen, die jedoch weitaus weniger verwendet werden.

UTF-8 ist eine Codierung mit variabler Breite, dh es werden unterschiedliche Speichermengen für unterschiedliche Codepunkte verwendet. Jeder Codepunkt belegt zwischen einem und vier Bytes, mit der Absicht, dass häufigere Zeichen weniger Speicherplatz benötigen und eine Art integrierte Komprimierung bieten. Der Nachteil besteht darin, dass das Bestimmen der Längen- oder Größenanforderungen eines bestimmten Textabschnitts viel komplizierter wird.

ASCII ist Unicode, aber Unicode ist nicht ASCII

Aus Gründen der Abwärtskompatibilität repräsentieren die ersten 128 Unicode-Codepunkte die entsprechenden ASCII-Zeichen. Da UTF-8 jedes dieser Zeichen mit einem einzelnen Byte codiert, ist jeder ASCII-Text auch ein UTF-8-Text. Unicode ist eine Obermenge von ASCII.

Wie oben gezeigt, können jedoch viele Unicode-Dateien nicht in einem ASCII-Kontext verwendet werden. Jedes Zeichen, das außerhalb der Grenzen liegt, wird auf unerwartete Weise angezeigt, häufig mit ersetzten Zeichen, die sich vollständig von den beabsichtigten unterscheiden.

Moderne Nutzung

Für die meisten Zwecke wird ASCII weitgehend als Legacy-Standard angesehen. Selbst in Situationen, die nur die lateinische Schrift unterstützen - wo die Komplexität von Unicode voll unterstützt wird Zum Beispiel unnötig - es ist normalerweise bequemer, UTF-8 zu verwenden und dessen ASCII zu nutzen Kompatibilität.

Insbesondere sollten Webseiten mit UTF-8 gespeichert und übertragen werden, was die Standardeinstellung für HTML5 ist. Dies steht im Gegensatz zu dem früheren Web, das sich standardmäßig mit ASCII befasste, bevor es durch Latein 1 ersetzt wurde.

Ein Standard, der sich ändert

Die letzte Überarbeitung von ASCII fand 1986 statt.

Im Gegensatz dazu wird Unicode weiterhin jährlich aktualisiert. Regelmäßig werden neue Skripte, Zeichen und insbesondere neue Emoji hinzugefügt. Wenn nur ein kleiner Teil davon zugewiesen wird, wird der gesamte Zeichensatz auf absehbare Zeit wahrscheinlich wachsen und wachsen.

Verbunden: Die 100 beliebtesten Emojis erklärt

Die 100 beliebtesten Emojis erklärt

Es gibt so viele Emojis, dass es schwierig sein kann zu wissen, was sie alle bedeuten. Hier werden die beliebtesten Emojis erklärt.

ASCII versus Unicode

ASCII hat seinen Zweck viele Jahrzehnte lang erfüllt, aber Unicode hat es nun effektiv für alle praktischen Zwecke außer für Legacy-Systeme ersetzt. Unicode ist größer und daher ausdrucksvoller. Es stellt eine weltweite Zusammenarbeit dar und bietet eine weitaus größere Flexibilität, wenn auch auf Kosten einer gewissen Komplexität.

Email
Was ist ASCII-Text und wie wird er verwendet?

ASCII-Text erscheint kryptisch, hat jedoch im Internet viele Verwendungsmöglichkeiten.

Verwandte Themen
  • Technologie erklärt
  • Emojis
  • Jargon
  • Webkultur
  • Unicode
Über den Autor
Bobby Jack (23 Artikel veröffentlicht)

Bobby ist ein Technologie-Enthusiast, der fast zwei Jahrzehnte als Softwareentwickler gearbeitet hat. Er liebt das Spielen, arbeitet als Reviews Editor beim Switch Player Magazine und ist in alle Aspekte des Online-Publizierens und der Webentwicklung vertieft.

Mehr von Bobby Jack

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Noch ein Schritt…!

Bitte bestätigen Sie Ihre E-Mail-Adresse in der E-Mail, die wir Ihnen gerade gesendet haben.

.