Was ist der Unterschied zwischen ASCII- und Unicode-Text?

Was ist der Unterschied zwischen ASCII- und Unicode-Text?

ASCII und Unicode sind beides Standards, die sich auf die digitale Darstellung von Text beziehen, insbesondere 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 American Standard Code for Information Interchange (ASCII) ein amerikanisches Publikum anspricht und im englischen Alphabet schreibt. Es behandelt Buchstaben ohne Akzent, wie A-Z und a-z, sowie eine kleine Anzahl von Satzzeichen und Steuerzeichen.





Insbesondere gibt es keine Möglichkeit, aus anderen Sprachen übernommene Lehnwörter darzustellen, wie z Kaffee in ASCII, ohne sie durch Ersetzen von Zeichen mit Akzenten anglisieren (z. B. Cafe ). Lokalisierte ASCII-Erweiterungen wurden entwickelt, um den Bedürfnissen verschiedener Sprachen gerecht zu werden, aber diese Bemühungen machten die Interoperabilität umständlich und streckten die Fähigkeiten von ASCII eindeutig aus.





Dagegen liegt der Universal Coded Character Set (Unicode) am anderen Ende der Ambitionsskala. Unicode versucht, so viele Schriftsysteme der Welt wie möglich zu bedienen, soweit es alte Sprachen und die beliebtesten ausdrucksstarken Symbole aller, Emojis, abdeckt.

Zeichensatz oder Zeichenkodierung?

Einfach ausgedrückt ist ein Zeichensatz eine Auswahl von Zeichen (z. B. A-Z), während eine Zeichencodierung eine Abbildung zwischen einem Zeichensatz und einem digital darstellbaren Wert (z. B. A=1, B=2) ist.



Der ASCII-Standard ist effektiv beides: Er definiert den Satz von Zeichen, den er darstellt, und eine Methode, jedes Zeichen einem numerischen Wert zuzuordnen.

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





Größe

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

Unicode bietet 1.111.998 adressierbaren Code-Punkte. Ein Codepunkt ist ungefähr analog zu einem Platz, der für ein Zeichen reserviert ist, aber die Situation ist viel komplizierter, wenn Sie beginnen, sich in die Details zu vertiefen!





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

Lagerung

Der 7-Bit-Bereich von ASCII bedeutet, dass jedes Zeichen in einem einzelnen 8-Bit-Byte gespeichert wird; das Reservebit wird im Standard-ASCII nicht verwendet. Dies macht Größenberechnungen trivial: Die Textlänge in Zeichen entspricht der Dateigröße in Bytes.

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

kostenlose ocr-software für windows 10
$ echo -n 'Hello, world' > foo

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

$ file foo
foo: ASCII text, with no line terminators

Um die genaue Anzahl von Bytes zu erhalten, die die Datei einnimmt, verwenden wir schließlich die Zustand Befehl:

$ stat -f%z foo
12

Da der Unicode-Standard mit einem weitaus größeren Zeichenbereich umgeht, nimmt eine Unicode-Datei naturgemäß mehr Speicherplatz ein. Wie viel hängt von der Codierung ab.

Das Wiederholen des gleichen Befehlssatzes von zuvor mit einem Zeichen, das nicht in ASCII dargestellt werden kann, ergibt Folgendes:

$ echo -n '€' > foo
$ file foo
foo: UTF-8 Unicode text, with no line terminators
$ stat -f%z foo
3

Dieses einzelne Zeichen belegt 3 Byte in einer Unicode-Datei. Beachten Sie, dass bash automatisch eine UTF-8-Datei erstellt hat, da eine ASCII-Datei das gewählte Zeichen (€) nicht speichern kann. UTF-8 ist bei weitem die gebräuchlichste Zeichencodierung für Unicode; UTF-16 und UTF-32 sind zwei alternative Kodierungen, die jedoch weit weniger verwendet werden.

UTF-8 ist eine Codierung mit variabler Breite, was bedeutet, dass für verschiedene Codepunkte unterschiedliche Speichermengen verwendet werden. Jeder Codepunkt belegt zwischen einem und vier Bytes, mit der Absicht, dass häufigere Zeichen weniger Platz benötigen, wodurch eine Art integrierte Komprimierung bereitgestellt wird. Der Nachteil besteht darin, dass die Bestimmung 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 einzigen Byte codiert, ist jeder ASCII-Text auch ein UTF-8-Text. Unicode ist eine Obermenge von ASCII.

Wie oben gezeigt, können viele Unicode-Dateien jedoch nicht in einem ASCII-Kontext verwendet werden. Jedes Zeichen, das außerhalb der Grenzen liegt, wird auf unerwartete Weise angezeigt, oft mit Ersatzzeichen, die sich völlig 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 beispielsweise die vollständige Unterstützung der Komplexität von Unicode nicht erforderlich ist – ist es normalerweise bequemer, UTF-8 zu verwenden und seine ASCII-Kompatibilität zu nutzen.

wie man Filter auf Snapchat verwendet

Insbesondere sollten Webseiten mit UTF-8, dem Standard für HTML5, gespeichert und übertragen werden. Dies steht im Gegensatz zum früheren Web, das standardmäßig mit ASCII behandelt wurde, bevor es durch Latin 1 ersetzt wurde.

Ein Standard, der sich verändert

Die letzte Überarbeitung von ASCII fand 1986 statt.

Im Gegensatz dazu wird Unicode weiterhin jährlich aktualisiert. Regelmäßig werden neue Skripte, Charaktere und vor allem neue Emojis hinzugefügt. Da nur ein kleiner Bruchteil davon zugewiesen ist, wird der vollständige Zeichensatz wahrscheinlich auf absehbare Zeit wachsen und wachsen.

Verwandt: Die 100 beliebtesten Emojis erklärt

ASCII versus Unicode

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

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

ASCII-Text erscheint kryptisch, wird aber im Internet vielseitig verwendet.

Weiter lesen
Verwandte Themen
  • Technologie erklärt
  • Emojis
  • Jargon
  • Webkultur
  • Unicode
Über den Autor Bobby Jack(58 veröffentlichte Artikel)

Bobby ist ein Technologie-Enthusiast, der fast zwei Jahrzehnte lang als Software-Entwickler gearbeitet hat. Er hat eine Leidenschaft für Spiele, arbeitet als Rezensionsredakteur beim Switch Player Magazine und vertieft sich in alle Aspekte des Online-Publishing und der Webentwicklung.

Mehr von Bobby Jack

Abonniere unseren Newsletter

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

Klicken Sie hier, um sich zu abonnieren