Erweiterte ASCII

Ausgabe des Programms ASCII in Cygwin

Erweiterte ASCII bedeutet an Acht-Bit Zeichenkodierung Dazu gehören (meistens) das Sieben-Bit ASCII Zeichen sowie zusätzliche Zeichen. Mit dem Begriff "erweiterter ASCII" wird manchmal kritisiert,[1][2][3] Weil es fälschlicherweise so interpretiert werden kann, dass der ASCII -Standard aktualisiert wurde, um mehr Zeichen einzubeziehen oder dass der Begriff eindeutig eine einzelne Codierung identifiziert, von denen keiner der Fall ist.

Es gibt viele erweiterte ASCII -Codierungen (mehr als 220 DoS- und Windows -Codepages). Ebcdic ("Der andere" Major 8-Bit-Charaktercode) entwickelte im Laufe der Jahrzehnte ebenfalls viele erweiterte Varianten (mehr als 186 EBCDIC-Codepages).

Einige Leute nennen einen Nicht-ASCII-Charakter in Unicode "erweiterter ASCII". In anderen Kontexten nur die UTF-8 Codierung zählt und in noch anderen Kontexten wird keine Unicode -Codierung als erweitertes ASCII angesehen.

Geschichte

ASCII wurde in den 1960er Jahren für entworfen Teleprinter und Telegrafieund etwas Computer. Frühe Teleprinter waren elektromechanisch, hatten keinen Mikroprozessor und gerade genug elektromechanischer Speicher, um zu funktionieren. Sie verarbeiteten einen Charakter gleichzeitig vollständig und kehrten unmittelbar danach in einen Leerlaufzustand zurück; Dies bedeutete, dass alle Kontrollsequenzen nur ein Zeichen lang sein mussten, und daher musste eine große Anzahl von Codes für solche Steuerelemente reserviert werden. Sie wurden vom Schreibmaschinen abgeleiteten Impact -Druckerund konnte nur einen festen Satz von Glyphen drucken, die in ein Metalltypelement oder Elemente gegossen wurden; Dies förderte auch einen Mindestsatz von Glyphen.

Sieben-Bit-ASCII verbesserte sich gegenüber den vorherigen Fünf- und Sechs-Bit-Codes. Der 27= 128 Codes, 33 wurden für Kontrollen verwendet und 95 sorgfältig ausgewählt druckbare Zeichen (94 Glyphen und ein Raum), der das englische Alphabet (Großbuchstaben und Kleinbuchstaben), Ziffern und 31 Zeichenzeichen und Symbole umfasst: Alle Symbole auf einem Standard -US -amerikanischen Schreibmaschinen sowie einige für Programmieraufgaben ausgewählt. Einige beliebte Peripheriegeräte implementierten nur eine 64-Druck-Charakter-Untergruppe: Teletyp -Modell 33 konnte nicht "durch" durch "z" oder fünf weniger gewöhnliche Symbole übertragen ("" "," {"," | ","} "und" ~ "). und als sie solche Charaktere erhielten, druckten sie stattdessen "ein" durch "Z" (erzwungen Alle Kappen) und fünf andere meist-ähnliche Symbole ("@", ",", "", ","] "und"^").

Das ASCII -Charakter -Set ist kaum groß genug für die englische Verwendung von uns und es fehlen viele Glyphen, die häufig sind Artensettund viel zu klein für den universellen Gebrauch. Viele weitere Buchstaben und Symbole sind wünschenswert, nützlich oder verpflichtet, direkt Buchstaben von anderen Alphabeten als Englisch, mehr Arten von Interpunktion und Abstand, mehr mathematische Operatoren und Symbole (× ÷ ≤ ≤ ≥ ≥ π usw.), einige einzigartige Symbole verwendet durch einige Programmiersprachen, Ideogramme, Logogramme, Box-Drawing-Zeichen usw. Seit Jahren wurden Anwendungen um das 64-Charakter-Set und/oder das 95-Charakter-Set entworfen, sodass mehrere Zeichen neue Verwendungszwecke erwarben. Zum Beispiel fehlt ASCII "÷", so dass die meisten Programmiersprachen "/" angeben, um eine Teilung anzuzeigen.

Das größte Problem für Computerbenutzer auf der ganzen Welt waren weitere Alphabete. Das englische Alphabet von ASCII bietet fast europäischen Sprachen auf, wenn akzentuierte Briefe durch nicht akzentuierte Buchstaben oder zwei-Zeichen-Näherungen ersetzt werden. Modifizierte Varianten von 7-Bit-ASCII erschienen umgehend und tauzierten einige weniger verwendete Symbole gegen stark gewünschte Symbole oder Buchstaben, z. in Korea usw. entstanden mindestens 29 Varianten. 12 Codepunkte wurden um mindestens einen modifizierten Satz geändert, wobei nur noch abgereist ist 82 "invariante" Codes. Programmiersprachen hatten jedoch vielen der ersetzten Zeichen eine Bedeutung zugewiesen. Drei-Charakter-Sequenzen "?? (" und "??)", um "{" und "}" darzustellen.[4] Sprachen mit unterschiedlichen grundlegenden Alphabeten könnten Transliteration verwenden, z. B. das Ersetzen aller lateinischen Buchstaben durch die Die engsten Match Cyrillic Letters (Dies führt zu seltsamem, aber etwas lesbarem Text, wenn Englisch in kyrillischem oder umgekehrt gedruckt wurde). Die Programme wurden ebenfalls so entwickelt, dass zwei Buchstaben überdruckt werden konnten (oft mit dem Rücktaste Kontrolle zwischen ihnen), um Akzentschreiben zu erstellen. Die Benutzer waren mit keinem dieser Kompromisse vertraut und sie wurden oft schlecht unterstützt.

Wenn Computer und Peripheriegeräte auf acht Bit standardisiert wurden Bytes In den 1970er Jahren wurde offensichtlich, dass Computer und Software Text mit 256-Charakter-Sätzen zu fast keinen zusätzlichen Kosten für die Programmierung und keine zusätzlichen Kosten für die Speicherung verwenden konnten. (Angenommen, das nicht verwendete 8. Bit jedes Byte wurde in irgendeiner Weise wiederverwendet, z. B. Fehlerprüfung, Boolesche Felder oder 8 Zeichen in 7 Bytes.) Dies würde es ASCII ermöglichen, unverändert zu verwenden und 128 weitere Zeichen bereitzustellen. Viele Hersteller entwickelten 8-Bit-Zeichensätze, die aus ASCII plus bis zu 128 der nicht verwendeten Codes bestehen. Da Osteuropa zu dieser Zeit politisch getrennt war, wurden 8-Bit genannt "lateinisch" oder "römisch".

128 Zusätzliche Charaktere reichen immer noch nicht aus, um alle Zwecke, alle Sprachen oder sogar alle europäischen Sprachen abzudecken. viele Proprietäre und nationale Ascii-abgeleitete 8-Bit-Charakter-Sets waren unvermeidlich. Übersetzung zwischen diesen Sätzen (Transcodierung) ist komplex (insbesondere wenn ein Charakter nicht in beiden Sätzen ist); und wurde oft nicht fertiggestellt, produzieren Mojibake (Halblesbarer resultierender Text, häufig lernten die Benutzer, wie man ihn manuell dekodiert). In den späten neunziger Jahren gab es schließlich Versuche zur Zusammenarbeit oder Koordination durch nationale und internationale Standards, aber die Herstellung proprietären Sets blieben bei weitem am beliebtesten, vor allem, weil die Standards viele beliebte Charaktere ausgeschlossen hatten.

Proprietäre Erweiterungen

Verschiedene proprietäre Modifikationen und Erweiterungen von ASCII erschienen auf NichtsEbcdic Mainframe -Computer und Minicomputerbesonders an Universitäten.

Hewlett Packard begann, europäische Charaktere zu ihrem erweiterten 7-Bit / 8-Bit-ASCII-Zeichensatz hinzuzufügen HP Römische Erweiterung um 1978/1979 zur Verwendung mit ihren Workstations, Terminals und Druckern. Dies entwickelte sich später zu den weit verbreiteten regulären 8-Bit-Zeichensätzen HP Roman-8 und HP Roman-9 (sowie eine Reihe von Varianten).

Atari und Kommodore Heimcomputer Zu ihrem nicht standardmäßigen ASCII (jeweils) wurden viele grafische Symbole hinzugefügt Atascii und PETSCIIbasierend auf dem ursprünglichen ASCII -Standard von 1963).

Das TRS-80-Zeichensatz für die TRS-80 Heimcomputer 64 hinzugefügt Semigraphik Zeichen (0x80 bis 0xBF), die Blockgrafiken mit niedriger Auflösung implementierten. (Jedes blockgraphische Zeichen, das als 2x3-Gitter von Pixeln angezeigt wird, wobei jedes Blockpixel von einem der unteren 6 Bits effektiv gesteuert wird.)[5]

IBM führte acht Bit erweiterte ASCII-Codes für das Original ein IBM PC und später Variationen für verschiedene Sprachen und Kulturen hervorgebracht. IBM nannte solche Charakter -Sets Codeseiten und zugewiesene Zahlen sowohl denjenigen, die sie selbst erfunden haben als viele erfunden und von anderen Herstellern verwendet wurden. Dementsprechend werden Zeichensätze sehr oft durch ihre IBM -Code -Seitennummer angegeben. Bei ASCII-kompatiblen Code-Seiten haben die unteren 128 Zeichen ihre Standard-US-ACTII-Werte beibehalten, und verschiedene Seiten (oder Zeichen von Zeichen) könnten in den oberen 128 Zeichen verfügbar gemacht werden. DOS Computer, die zum Beispiel für den nordamerikanischen Markt gebaut wurden Code Seite 437, einschließlich Akzentfiguren, die für Französisch, Deutsch und einige andere europäische Sprachen benötigt wurden, sowie einige grafische Zeilenschaltzeichen. Der größere Zeichensatz machte es möglich, Dokumente in einer Kombination von Sprachen wie zu erstellen, z. B. Englisch und Französisch (Obwohl französische Computer normalerweise verwenden Code Seite 850), aber nicht zum Beispiel in Englisch und griechisch (was erforderte Code Seite 737).

Apple Computer stellte ihre eigenen achtbit erweiterten ASCII-Codes in ein Mac OS, wie zum Beispiel Mac OS Roman. Das Apple Laserwriter stellte auch die vor PostScript -Zeichensatz.

Digital Equipment Corporation (Dez) entwickelte die Multinationaler Charaktersatz, die weniger Charaktere hatten, aber mehr Buchstaben und diakritische Kombinationen. Es wurde von der unterstützt VT220 und später Dez Computerterminals. Dies wurde später die Grundlage für andere Zeichensets wie die Lotus International Character Set (LICs), ECMA-94 und ISO 8859-1.

ISO 8859 und proprietäre Anpassungen

Letztlich, ISO veröffentlichte diesen Standard als ISO 8859 Beschreibung des eigenen Satzes von Acht-Bit-ASCII-Erweiterungen. Das beliebteste ist ISO 8859-1, auch genannt ISO Latein 1, die Charaktere enthielten, die für die häufigsten westeuropäischen Sprachen ausreichend waren. Variationen wurden auch für andere Sprachen standardisiert: ISO 8859-2 für osteuropäische Sprachen und ISO 8859-5 Zum Beispiel für kyrillische Sprachen.

Eine bemerkenswerte Möglichkeit, wie sich ISO -Zeichensätze von Codeseiten unterscheiden Steuerzeichen Mit dem hochrangigen Bit-Set sind in den ISO-Standards spezifisch unbenutzt und undefiniert, obwohl sie häufig für druckbare Zeichen auf proprietären Code-Seiten verwendet wurden, ein Bruch der ISO-Standards, die fast universell waren.

Microsoft später erstellt Code Seite 1252, ein kompatibles Superet von ISO 8859–1 mit zusätzlichen Zeichen im nicht verwendeten ISO -Bereich. Code Seite 1252 ist die Standardcharaktercodierung westeuropäischer Sprachversionen von Microsoft Windows, einschließlich englischer Versionen. ISO 8859-1 ist die übliche 8-Bit-Zeichenkodierung, die von der verwendet wird X Fenstersystemund die meisten Internet Standards benutzten es vorher Unicode.

Charakter -Set -Verwirrung

Die Bedeutung jedes erweiterten Codepunkts kann in jeder Codierung unterschiedlich sein. Um Textdaten (Zeichen von Zeichen) korrekt zu interpretieren und anzuzeigen, enthält erweiterte Codes, Hardware und Software, die den Text liest oder empfängt Spezifisch Erweiterte ASCII -Codierung, die für sie gilt. Die Anwendung der falschen Codierung führt zu einer irrationalen Substitution vieler oder aller erweiterten Zeichen im Text.

Die Software kann eine feste Codierungsauswahl verwenden oder aus einer Palette von Codierungen ausgewählt werden, indem sie die Nation und die Spracheinstellungen des Computers überprüft und eine Erklärung im Text lesen. Analyse des Textes, fragen Sie den Benutzer, lassen Sie den Benutzer auswählen oder überschreiben und/oder die letzte Auswahl abbauen. Wenn der Text zwischen Computern übertragen wird, die unterschiedliche Betriebssysteme, Software und Codierungen verwenden, kann die Anwendung der falschen Codierung alltäglich sein.

Da das vollständige englische Alphabet und die am häufigsten verwendeten Charaktere in Englisch in den Sieben-Bit-Codepunkten von ASCII enthalten sind, die allen Codierungen (selbst die meisten proprietären Codierungen) gemeinsam sind, wird englischsprachiger Text weniger beschädigt, indem es mit dem interpretiert wird Falsche Codierung, aber Text in anderen Sprachen kann als anzeigen Mojibake (vollständiger Unsinn). Da viele Internetstandards ISO 8859-1 verwenden und Microsoft Windows (mit der Code Seite 1252 Superset von ISO 8859-1) das dominierende Betriebssystem für PCs heute ist, ist die unangekündigte Verwendung von ISO 8859-1 ziemlich alltäglich und May May May Im Allgemeinen werden angenommen, es sei denn, es gibt Hinweise auf andere Weise.

Viele Kommunikationsprotokolle, am wichtigsten SMTP und HttpErfordern die Zeichenkodierung von Inhalten Iana-Zugewandte Zeichensatzkennungen.

Verwendung in computerlesbaren Sprachen

Für Programmiersprachen und Dokumentsprachen wie z. C und HtmlDas Prinzip der erweiterten ASCII ist wichtig, da es viele verschiedene Codierungen und daher viele menschliche Sprachen ermöglicht, in der Software, die die computerlesbaren Sprachdateien interpretiert, mit wenig zusätzlichen Programmieraufwand unterstützt werden.

Das Prinzip des erweiterten ASCII bedeutet::

  • Alle ASCII -Bytes (0x00 bis 0x7f) haben die gleiche Bedeutung in alle Varianten von erweitertem ASCII,
  • Bytes, die keine ASCII -Bytes sind, werden nur für freien Text und nicht für Tags, Schlüsselwörter oder andere Funktionen verwendet, die für die Interpretationssoftware eine besondere Bedeutung haben.

Eine Computersprache, die erweiterte ASCII unterstützt UTF-8 Ohne Änderungen war dies ein wesentlicher Faktor für die Popularität von UTF-8.

Siehe auch

Verweise

  1. ^ Benjamin Riefenstahl (26. Februar 2001). "Betreff: Cygwin TermCap -Informationen mit erweiterten ASCII -Charikern". Cygwin (Mailingliste). Archiviert Aus dem Original am 11. Juli 2013. Abgerufen 2. Dezember 2012.
  2. ^ S. Wolicki (23. März 2012). "Drucken erweiterter ASCII -Codes in SQL*Plus". Abgerufen 17. Mai, 2022.
  3. ^ Mark J. Reed (28. März 2004). "Vim: Wie tippt ich erweiterte ASCII?". Newsgroup:Comp.Editors. Abgerufen 17. Mai, 2022.
  4. ^ "2.2.1.1 Trigraph -Sequenzen". Begründung für den amerikanischen nationalen Standard für Informationssysteme - Programmiersprache - C.. Archiviert vom Original am 2018-09-29. Abgerufen 2019-02-08.
  5. ^ Goldklang, Ira (2015). "Grafische Tipps & Tricks". Archiviert vom Original am 2017-07-29. Abgerufen 2017-07-29.

Externe Links