„American Standard Code for Information Interchange“ – Versionsunterschied
[ungesichtete Version] | [gesichtete Version] |
BKL+ |
Regi51 (Diskussion | Beiträge) K Änderungen von 201.141.101.141 (Diskussion) rückgängig gemacht (HG) (3.4.12) Markierung: Zurücksetzung |
||
Zeile 1: | Zeile 1: | ||
{{Weiterleitungshinweis|ASCII}} |
|||
{{Dieser Artikel|beschreibt den Computer-Code ASCII, für den gleichnamigen Asteroiden siehe [[ASCII (Asteroid)]].}} |
|||
[[Datei:USASCII code chart.png|mini|500px|ASCII-Tabelle aus MIL-STD-188-100 (1972)]] |
|||
Der {{lang|en|'''American Standard Code for Information Interchange'''}} ('''ASCII''', alternativ '''US-ASCII''', ausgesprochen [{{IPA|ˈæski}}],<ref name="Mackenzie_1980">{{Literatur |Online=https://textfiles.meulie.net/bitsaved/Books/Mackenzie_CodedCharSets.pdf |Titel=Coded Character Sets, History and Development |Autor=Charles E. Mackenzie |Jahr=1980 |Auflage=1 |Verlag=Addison-Wesley Publishing Company, Inc. |ISBN=978-0-201-14460-4 |Seiten=6, 66, 211, 215, 217, 220, 223, 228, 236–238, 243–245, 247–253, 423, 425–428, 435–439 |Abruf=2019-08-25 |Sprache=en}}</ref> {{deS|„Amerikanischer Standard-Code für den Informationsaustausch“}}) ist eine 7-[[Bit]]-[[Zeichenkodierung]]; sie entspricht der US-Variante von [[ISO 646]] und dient als Grundlage für spätere, auf mehr Bits basierende Kodierungen für [[Zeichensatz|Zeichensätze]]. |
|||
Der ASCII-Code wurde zuerst am 17. Juni 1963 von der [[American National Standards Institute|American Standards Association]] (ASA) als Standard ASA X3.4-1963 gebilligt<ref name="x3-4-1967">{{Literatur |Hrsg=American Standards Association |Titel=American Standard Code for Information Interchange |Datum=1963 |Online=[http://worldpowersystems.com/archives/codes/X3.4-1963/ Scans]}}</ref>{{rp|[http://worldpowersystems.com/archives/codes/X3.4-1963/page1.JPG 1]}}<ref name="f-w-smith-1964" />{{rp|[http://worldpowersystems.com/archives/codes/New-ASCII/page1.JPG 50]}} (damals noch ohne Kleinbuchstaben<ref>[https://www.sensitiveresearch.com/Archive/CharCodeHist/Files/CODES%20standards%20documents%20ASCII%20Sean%20Leonard%20Oct%202015/ASCII%2063,%20X3.4-1963.pdf ASCII-Code von 1963]</ref>) und 1967/68<ref name="x3.4-1967" /><!--TODO zu klären--> wesentlich sowie zuletzt im Jahr 1986 ([[ANSI]] X3.4-1986)<ref name="incits-4-1986" /> von ihren Nachfolgeinstitutionen aktualisiert und wird noch benutzt. Die Zeichenkodierung definiert 128 Zeichen und besteht aus 33 nicht druckbaren sowie 95 darauf folgenden druckbaren Zeichen, beginnend mit dem [[Leerzeichen]]: |
|||
<code> </code><code>!</code><code>"</code><code>#</code><code>$</code><code>%</code><code>&</code><code>'</code><code>(</code><code>)</code><code>*</code><code>+</code><code>,</code><code>-</code><code>.</code><code>/</code><br /> |
|||
'''ASCII''' (''American Standard Code for Information Interchange'', alternativ '''US-ASCII''', oft [{{IPA|æski}}] ausgesprochen) ist eine siebenbittige [[Zeichenkodierung]] und bildet die US-Variante von [[ISO 646]] sowie die Grundlage für spätere mehrbittige [[Zeichensatz|Zeichensätze]] und -kodierungen. |
|||
<code>0</code><code>1</code><code>2</code><code>3</code><code>4</code><code>5</code><code>6</code><code>7</code><code>8</code><code>9</code><code>:</code><code>;</code><code><</code><code>=</code><code>></code><code>?</code><br /> |
|||
<code>@</code><code>A</code><code>B</code><code>C</code><code>D</code><code>E</code><code>F</code><code>G</code><code>H</code><code>I</code><code>J</code><code>K</code><code>L</code><code>M</code><code>N</code><code>O</code><br /> |
|||
<code>P</code><code>Q</code><code>R</code><code>S</code><code>T</code><code>U</code><code>V</code><code>W</code><code>X</code><code>Y</code><code>Z</code><code>[</code><code>\</code><code>]</code><code>^</code><code>_</code><br /> |
|||
<code>`</code><code>a</code><code>b</code><code>c</code><code>d</code><code>e</code><code>f</code><code>g</code><code>h</code><code>i</code><code>j</code><code>k</code><code>l</code><code>m</code><code>n</code><code>o</code><br /> |
|||
<code>p</code><code>q</code><code>r</code><code>s</code><code>t</code><code>u</code><code>v</code><code>w</code><code>x</code><code>y</code><code>z</code><code>{</code><code>|</code><code>}</code><code>~</code> |
|||
Die druckbaren Zeichen umfassen das [[Lateinisches Alphabet|lateinische Alphabet]] in Groß- und Kleinschreibung, die zehn [[Indische Ziffern|indisch-arabischen Ziffern]] sowie einige [[Interpunktionszeichen]] ([[Satzzeichen]], [[Wortzeichen]]) und andere [[Sonderzeichen]]. Der Zeichenvorrat entspricht weitgehend dem einer [[Tastatur]] oder [[Schreibmaschine]] für die [[englische Sprache]]. In Computern und anderen elektronischen Geräten, die Text darstellen, wird dieser Code in der Regel gemäß ASCII oder [[Abwärtskompatibilität|abwärtskompatibel]] ([[ISO 8859]], [[Unicode]]) dazu gespeichert. |
|||
ASCII wurde im Jahr [[1967]] erstmals als Standard veröffentlicht und im Jahr [[1986]] zuletzt aktualisiert. Die Zeichenkodierung definiert 33 nicht-druckbare, sowie die folgenden 95 druckbaren Zeichen, beginnend mit dem [[Leerzeichen]]. |
|||
<pre> |
|||
Die nicht druckbaren [[Steuerzeichen]] enthalten Ausgabezeichen wie Zeilenvorschub oder [[Tabulatorzeichen]], [[Kommunikationsprotokoll|Protokollzeichen]] wie Übertragungsende oder Bestätigung und Trennzeichen wie Datensatztrennzeichen. |
|||
!"#$%&'()*+,-./0123456789:;<=>? |
|||
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ |
|||
`abcdefghijklmnopqrstuvwxyz{|}~ |
|||
</pre> |
|||
Die Zeichen umfassen das [[Lateinisches Alphabet|lateinische Alphabet]] in Groß- und Kleinschreibung, die zehn indo-arabischen Ziffern, sowie einige Satz- und Steuerzeichen. Der Zeichenvorrat entspricht weitgehend dem einer Tastatur oder Schreibmaschine für die [[englische Sprache]]. In Computern und anderen elektronischen Geräten, die Text darstellen, wird dieser in der Regel gemäß ASCII oder [[abwärtskompatibel]] (z. B. [[ISO 8859]], [[UTF-8]]) dazu gespeichert. |
|||
== Kodierung == |
== Kodierung == |
||
{| class="wikitable float-right" style="text-align:center;" |
|||
Jedem Zeichen wird ein Bitmuster aus 7 [[Bit]] zugeordnet. Da jedes Bit zwei Werte annehmen kann gibt es <math>2^7 = 128 </math> verschiedene Bitmuster, die auch als die ganzen Zahlen 0–127 interpretiert werden können. |
|||
|+ Buchstaben als 7-Bit-Code |
|||
|- class="hintergrundfarbe6" |
|||
In anderen als der englischen Sprache verwendete Sonderzeichen – wie beispielsweise die deutschen [[Umlaut]]e – können mit dem 7 Bitcode nicht vollständig dargestellt werden; hierfür würden 8 bis 16 Bit benötigt. Die Datenverarbeitung benutzt in der Regel 8 Bit oder ein [[Byte]] als kleinste Einheit zur Datenspeicherung. Das hochwertigste Bit in jedem Byte ist bei Verwendung des ASCII auf den Wert 0 gesetzt. |
|||
! ASCII !! Dez !! Hex !! Binär |
|||
{| {{Prettytable-R}} |
|||
|+ Die Buchstaben A, B und C als Sieben-Bit-Code |
|||
|-{{Highlight}} |
|||
! Schriftzeichen !! Dezimal !! Hexadezimal !! Binär |
|||
|- |
|- |
||
| A || 65 || 41 || (0) |
| <code>A</code> || 65 || 41 || (0)100 0001 |
||
|- |
|- |
||
| B || 66 || 42 || (0) |
| <code>B</code> || 66 || 42 || (0)100 0010 |
||
|- |
|- |
||
| C || 67 || 43 || (0) |
| <code>C</code> || 67 || 43 || (0)100 0011 |
||
|- |
|- |
||
| … || … || … || … |
| … || … || … || … |
||
|- |
|||
| <code>Z</code> || 90 || 5A || (0)101 1010 |
|||
|} |
|} |
||
Jedem Zeichen wird ein Bitmuster aus 7 [[Bit]] zugeordnet. Da jedes Bit zwei Werte annehmen kann, gibt es 2<sup>7</sup> = 128 verschiedene Bitmuster, die auch als die ganzen Zahlen 0–127 ([[Hexadezimalsystem|hexadezimal]] 00<sub>hex</sub>–7F<sub>hex</sub>) interpretiert werden können. |
|||
Das für ASCII nicht benutzte achte Bit kann für die [[Fehlerkorrekturverfahren|Fehlererkennung]] ([[Paritätsbit]]) auf den Kommunikationsleitungen oder für andere Steuerungsaufgaben verwendet werden. Es wird aber fast immer zur Erweiterung von ASCII auf einen 8-Bit-Code verwendet. Diese Erweiterungen sind mit dem ursprünglichen ASCII weitgehend [[Kompatibilität (Technik)|kompatibel]], so dass alle im ASCII definierten Zeichen auch in den verschiedenen Erweiterungen durch die gleichen Bitmuster kodiert werden. Die einfachsten Erweiterungen sind Kodierungen mit sprachspezifischen Zeichen, die nicht im lateinischen Grundalphabet enthalten sind, vgl. [[#8-bit|unten]]. |
|||
== Zusammensetzung == |
|||
{| class="wikitable float-right" style="text-align:center; font-family:monospace, monospace;" |
|||
|+ style="font-family:sans-serif;"| ASCII-Zeichentabelle, [[Hexadezimalsystem|hexadezimale]] Nummerierung |
|||
|- class="hintergrundfarbe6" |
|||
![[Hexadezimalsystem|Code]]!!…0 !!…1 !!…2 !!…3 !!…4 !!…5 !!…6 !!…7 !!…8 !!…9 !!…A !!…B !!…C !!…D !!…E !!…F |
|||
|- |
|||
{{ASCII-Steuerzeichen}} |
|||
|- |
|||
{{ASCII-Zeichen}} |
|||
|} |
|||
Die ersten 32 ASCII-Zeichencodes (von 00<sub>hex</sub> bis 1F<sub>hex</sub>) sind für [[Steuerzeichen]] ''(control character)'' reserviert; siehe dort für die Erklärung der Abkürzungen in der rechts (oder oben) stehenden Tabelle. Diese Zeichen stellen keine Schriftzeichen dar, sondern dienen (oder dienten) zur Steuerung von solchen Geräten, die den ASCII verwenden (etwa Drucker). Steuerzeichen sind beispielsweise der [[Wagenrücklauf]] für den [[Zeilenumbruch]] oder ''[[Bell (Steuerzeichen)|Bell]]'' (die Glocke); ihre Definition ist historisch begründet. |
|||
Code 20<sub>hex</sub> ''(SP)'' ist das [[Leerzeichen]] (engl. ''space'' oder ''blank''), das in einem Text als Leer- und Trennzeichen zwischen Wörtern verwendet und auf der Tastatur durch die [[Leertaste]] erzeugt wird. |
|||
Die Codes 21<sub>hex</sub> bis 7E<sub>hex</sub> stehen für druckbare Zeichen, die Buchstaben, Ziffern und [[Interpunktionszeichen]] ([[Satzzeichen]], [[Wortzeichen]]) umfassen. Die Buchstaben sind lediglich Klein- und Großbuchstaben des [[Lateinisches Alphabet|lateinischen Alphabets]]. In nicht-englischen Sprachen verwendete Buchstabenvarianten – beispielsweise die deutschen [[Umlaut]]e – sind im ASCII-Zeichensatz nicht enthalten. Ebenso fehlen typografisch korrekte [[Gedankenstrich]]e und Anführungszeichen, die Typografie beschränkt sich auf den [[Schreibmaschine]]nsatz. Der Zweck war ''Informationsaustausch,'' nicht [[Drucksatz]]. |
|||
Code 7F<sub>hex</sub> (alle sieben Bits auf eins gesetzt) ist ein Sonderzeichen, das auch als ''Löschzeichen'' bezeichnet wird ''([[Delete|DEL]]).'' Dieser Code wurde früher wie ein Steuerzeichen verwendet, um auf [[Lochstreifen]] oder [[Lochkarte]]n ein bereits gelochtes Zeichen nachträglich durch das Setzen aller Bits, das heißt durch Auslochen aller sieben Markierungen, löschen zu können. Dies war die einzige Möglichkeit zum Löschen, da einmal vorhandene Löcher nicht mehr rückgängig gemacht werden können. |
|||
Bereiche ohne Löcher (also mit dem Code 00<sub>hex</sub>) fanden sich vor allem am Anfang und Ende eines Lochstreifens ''([[Nullzeichen|NUL]]).'' |
|||
Aus diesem Grund gehörten zum eigentlichen ASCII nur 126 Zeichen, denn den Bitmustern 0 (0000000) und 127 (1111111) entsprachen keine Zeichencodes. Der Code 0 wurde später in der Programmiersprache [[C (Programmiersprache)|C]] als „Ende der Zeichenkette“ interpretiert; dem Zeichen 127 wurden verschiedene grafische Symbole zugeordnet. |
|||
Schon früh haben Computer mehr als 7 Bits, oft mindestens Acht-Bit-Zahlenworte, verwendet – das achte Bit kann für [[Fehlerkorrektur]]zwecke ([[Paritätsbit]]) auf den Kommunikationsleitungen oder für andere Steuerungsaufgaben verwendet werden. Heute wird es aber fast immer zur Erweiterung von ASCII auf einen 8-Bit-Code verwendet. Diese Erweiterungen sind mit dem ursprünglichen ASCII weitgehend [[kompatibel]], so dass alle im ASCII definierten Zeichen auch in den verschiedenen Erweiterungen durch die gleichen Bitmuster kodiert werden. Die Erweiterungen unterscheiden sich je nach Hard- und Software und sind länderspezifisch. |
|||
== Geschichte == |
== Geschichte == |
||
=== Fernschreiber === |
|||
Eine frühe Form der Zeichen[[Code|kodierung]] war der [[Morsecode]]. Er wurde mit der Einführung von [[Fernschreiber]]n aus den Telegrafennetzen verdrängt und durch den [[Baudot-Code]] und [[Baudot-Code#Der Baudot-Murray-Code (CCITT-2)|Murray-Code]] ersetzt. Vom 5-Bit-Murray-Code zum 7-Bit-ASCII war es dann nur noch ein kleiner Schritt – auch ASCII wurde zuerst für bestimmte amerikanische Fernschreibermodelle, wie den Teletype [[ASR-33|ASR33]], eingesetzt. |
|||
Die erste Version, noch ohne [[Kleinbuchstabe]]n und mit kleinen Abweichungen vom heutigen ASCII bei den Steuer- und Sonderzeichen, entstand im Jahr 1963. |
|||
Eine der frühsten Formen der [[Kodierung]] war der [[Morsecode]]. Der Morsecode wurde mit der Einführung von [[Fernschreiber]]n aus den Telegrafennetzen verdrängt und durch den [[Baudot-Code]] und [[Baudot-Code#Der Murray Code (CCITT-2)|Murray Code]] ersetzt. Vom Fünf-Bit-Murray-Code zum Sieben-Bit-ASCII war es dann nur noch ein kleiner Schritt – auch ASCII wurde zuerst für bestimmte amerikanische Fernschreiber-Modelle, wie den Teletype ASR33, eingesetzt. In den Anfängen des Computerzeitalters entwickelte sich ASCII zum Standard-Code für Schriftzeichen. Als Beispiel wurden viele [[Bildschirm]]e (z. B. [[VT100]]) und [[Drucker (Peripheriegerät)|Drucker]] nur mit ASCII angesteuert. |
|||
Im Jahr 1965 folgt die zweite Form des ASCII-Standards. Obwohl die Norm genehmigt wurde, wurde sie nie veröffentlicht und fand daher auch nie Anwendung. Der Grund dafür war, dass der ASA gemeldet wurde, dass die ISO (die International Standards Organization) einen Zeichensatz standardisieren würde, der ähnlich wie diese Norm war, aber leicht im Widerspruch zu dieser stünde.<ref name="cwi.nl">{{Webarchiv |url=http://homepages.cwi.nl/~dik/english/codes/stand.html#ascii |wayback=20100116001012 |text=ASA/USASI/ANSI + ISO}}</ref> |
|||
ASCII diente ursprünglich der Darstellung von Schriftzeichen der englischen Sprache. Die erste Version, noch ohne Kleinbuchstaben und mit kleinen Abweichungen vom heutigen ASCII, entstand im Jahr 1963. Im Jahr 1968 wurde dann der bis heute gültige ASCII festgelegt. Um später auch Sonderzeichen anderer Sprachen darstellen zu können (z. B. deutsche Umlaute), nahmen neue Kodierungen mit acht Bit pro Zeichen ASCII als kompatible Grundlage. Allerdings boten auch Acht-Bit-Codes in denen ein Byte für ein Zeichen stand zu wenig Platz, um alle Zeichen der menschlichen Schriftkultur gleichzeitig unterzubringen, wodurch mehrere verschiedene spezialisierte Erweiterungen notwendig wurden. Daneben exisitieren vor allem für den ostasiatischen Raum einige ASCII-kompatible Mehr-Byte-Kodierungen, die entweder zwischen verschiedene Codetabellen umschalten oder mehr als ein Byte für jedes Nicht-ASCII-Zeichen benötigen. |
|||
Keine dieser Acht-Bit-Erweiterungen ist aber „ASCII“, denn dies bezeichnet nur den einheitlichen Sieben-Bit-Code. |
|||
1968 wurde dann die gültige Fassung des ASCII-Standards festgelegt.<ref name="cwi.nl" /> |
|||
Für die Kodierung lateinischer Zeichen wird nur bei einigen Systemen von [[IBM]] eine zu ASCII inkompatible Kodierung verwendet ([[EBCDIC]]). [[Chinesische Zeichenkodierung]] sind nicht ASCII kompatibel. |
|||
{| class="wikitable" style="text-align:center;" |
|||
== Zusammensetzung == |
|||
|- class="hintergrundfarbe6" |
|||
{| style="text-align:center" {{prettytable}} |
|||
! Dez !! Hex !! ASCII 1963 <br> (veraltet) !! ASCII 1965 <br>(verworfen) !! ASCII 1968 <br>(aktuell) |
|||
|+ ASCII-Codetabelle, Nummerierung in [[Hexadezimalsystem|Hex]] |
|||
|-{{highlight}} |
|||
![[Hexadezimalsystem|Code]]!!…0 !!…1 !!…2 !!…3 !!…4 !!…5 !!…6 !!…7 !!…8 !!…9 !!…A !!…B !!…C !!…D !!…E !!…F |
|||
|- |
|- |
||
|''0–63'' || 00–3F |
|||
{{ASCII-Sonderzeichen}} |
|||
|colspan="3"| ''siehe normale [[#Zusammensetzung|Zusammensetzung]]'' |
|||
|- |
|- |
||
| ''64'' || 40 ||<code>[[@]]</code>||<code>`</code>||<code>@</code> |
|||
{{ASCII-Zeichen}} |
|||
|- |
|||
|''65–91'' || 41–5B |
|||
|colspan="3"| ''siehe normale [[#Zusammensetzung|Zusammensetzung]]'' |
|||
|- |
|||
| ''92'' || 5C ||<code>[[/|\]]</code>||<code>[[~]]</code>||<code>\</code> |
|||
|- |
|||
|''93'' || 5D |
|||
|colspan="3"| ''siehe normale [[#Zusammensetzung|Zusammensetzung]]'' |
|||
|- |
|||
| ''94'' || 5E ||<code>[[↑]]</code> |
|||
|colspan="2"|<code>[[^]]</code> |
|||
|- |
|||
| ''95'' || 5F ||<code>[[←]]</code> |
|||
|colspan="2"| [[Unterstrich|<code>_</code>]] |
|||
|- |
|||
| ''96'' || 60 ||''unbelegt'' ||<code>@</code>||<code>`</code> |
|||
|- |
|||
| ''97–122'' || 61–7A ||''unbelegt'' |
|||
|colspan="2"|<code>a</code> – <code>z</code> |
|||
|- |
|||
| ''123'' || 7B ||''unbelegt'' |
|||
|colspan="2"| [[Klammer (Zeichen)|<code>{</code>]] |
|||
|- |
|||
| ''124'' || 7C ||''unbelegt'' ||<code>[[¬]]</code>||[[Senkrechter Strich|<code>|</code>]] |
|||
|- |
|||
| ''125'' || 7D ||''unbelegt'' |
|||
|colspan="2"|<code>}</code> |
|||
|- |
|||
| ''126'' || 7E ||<code>[[Escape (Steuerzeichen)|ESC]]</code> ||<code>|</code>||<code>~</code> |
|||
|- |
|||
|''127'' || 7F |
|||
|colspan="3"| ''siehe normale [[#Zusammensetzung|Zusammensetzung]]'' |
|||
|} |
|} |
||
=== Computer === |
|||
Die ersten 32 ASCII-Zeichencodes (von 00 bis 1F) sind für [[Steuerzeichen]] (''control character'') reserviert; siehe dort für die Erklärung der Abkürzungen in obiger Tabelle. Dies sind Zeichen, die keine Schriftzeichen darstellen, sondern die zur Steuerung von solchen Geräten dienen (oder dienten), die ASCII verwenden (etwa Drucker). Steuerzeichen sind beispielsweise der Wagenrücklauf für den Zeilenumbruch oder ''Bell'' (die Glocke); ihre Definition ist historisch begründet. |
|||
In den Anfängen des Computerzeitalters entwickelte sich ASCII zum Standard-Code für Schriftzeichen. Zum Beispiel wurden viele [[Terminal (Computer)|Terminals]] ([[VT100]]) und [[Drucker (Gerät)|Drucker]] nur mit ASCII angesteuert. |
|||
Für die Kodierung lateinischer Zeichen wird fast nur bei [[Großrechner]]n die zu ASCII inkompatible 8-Bit-Kodierung [[Extended Binary Coded Decimals Interchange Code|EBCDIC]] verwendet, die [[International Business Machines|IBM]] parallel zu ASCII für sein [[System/360]] entwickelte, damals ein ernsthafter Konkurrent. Die Handhabung des Alphabets ist in EBCDIC schwieriger, denn es ist dort auf drei auseinander liegende Codebereiche verteilt. IBM selbst verwendete ASCII für interne Dokumente. ASCII wurde durch Präsident [[Lyndon B. Johnson]]s Anordnung 1968 gestützt, es in den Regierungsbüros zu verwenden. |
|||
Code 20 (''SP'') ist das [[Leerzeichen]] (engl. ''space'' oder ''blank''), welches in einem Text als Leer- und Trennzeichen zwischen Wörtern verwendet und auf der Tastatur durch die große breite Leertaste erzeugt wird. |
|||
=== Verwendung für andere Länder und Sprachen === |
|||
Die Codes 21 bis 7E sind alle ''druckbaren'' Zeichen, die sowohl Buchstaben, Ziffern und Satzzeichen (siehe Tabelle) enthalten. |
|||
{{Hauptartikel|ISO 646}} |
|||
Mit dem Internationalen Alphabet 5 (IA5) wurde 1963 eine 7-Bit-Codierung auf Basis des ASCII als ISO 646 normiert. Die Referenzversion (ISO 646-IRV) entspricht dabei bis auf eine Position dem ASCII. Um Buchstaben und Sonderzeichen verschiedener Sprachen darstellen zu können (beispielsweise die deutschen Umlaute), wurden 12 Zeichenpositionen zur Umdefinition vorgesehen (<code>#$@[\]^`{|}~</code>). Eine gleichzeitige Darstellung ist nicht möglich. Fehlende Anpassungen der Software an die jeweils zur Anzeige verwendete Variante führte oft zu ungewollt komischen Ergebnissen, so erschien beim Einschalten des [[Apple II]] „APPLE ÜÄ“ anstelle von „APPLE ][“. |
|||
Da sich darunter Zeichen befinden, die in der Programmierung verwendet werden, insbesondere die verschiedenen Klammern, wurden Programmiersprachen über Ersatzkombinationen ([[Digraph (Informatik)|Digraphen]]) für die Internationalisierung ertüchtigt. Zur Kodierung wurden dazu ausschließlich Zeichen aus dem invarianten Teil von ISO 646 verwendet. Die Kombinationen sind sprachspezifisch. So entspricht bei [[Pascal (Programmiersprache)|Pascal]] <code>(*</code> und <code>*)</code> den geschweiften Klammern (<code>{}</code>), während [[C (Programmiersprache)|C]] <code><%</code> und <code>%></code> dafür vorsieht. |
|||
Code 7F (alle sieben Bits auf eins gesetzt) ist ein Sonderzeichen, welches auch als „Löschzeichen“ bezeichnet wird (''DEL''). Dieser Code wurde früher wie ein Steuerzeichen verwendet, um auf [[Lochstreifen]] oder [[Lochkarte]]n ein bereits gelochtes Zeichen nachträglich durch das Setzen aller Bits, d. h. durch Auslochen aller sieben Markierungen, löschen zu können – einmal vorhandene Löcher kann man schließlich nicht wieder rückgängig machen. |
|||
In der [[Sowjetunion]] wurde eine als [[KOI7]] bezeichnete Abwandlung zur Darstellung [[Kyrillisches Alphabet|kyrillischer Zeichen]] entwickelt. |
|||
== Erweiterungen == |
|||
== {{Anker|x1=8-bit}}Erweiterungen == |
|||
ASCII enthält keine [[Diakritisches Zeichen|diakritischen Zeichen]], die in fast allen Sprachen auf der Basis des lateinischen Alphabets verwendet werden. Der internationale Standard [[ISO 646]] ([[1972]]) war der erste Versuch, dieses Problem anzugehen, was allerdings zu Kompatibilitätsproblemen führte. Er ist immer noch ein Sieben-Bit-Code und weil keine anderen Codes verfügbar waren wurden einige Codes in neuen Varianten verwendet. |
|||
=== Nutzung der übrigen 128 Positionen im Byte === |
|||
Zur Überwindung der Inkompatibilitäten nationaler 7-Bit-Varianten von ASCII entwickelten zunächst verschiedene Hersteller eigene ASCII-kompatible 8-Bit-Codes (d. h. solche, die auf den ersten 128 Positionen mit ASCII übereinstimmen). Der [[Codepage 437]] genannte Code war lange Zeit der am weitesten verbreitete, er kam auf dem [[IBM-PC]] unter englischem [[MS-DOS]], und kommt noch im DOS-Fenster von englischem [[Microsoft Windows|Windows]] zur Anwendung. In deren deutschen Installationen ist seit MS-DOS 3.3 die westeuropäische [[Codepage 850]] der Standard. |
|||
Auch bei späteren Standards wie [[ISO 8859]] wurden acht Bits verwendet. Dabei existieren mehrere Varianten, zum Beispiel ''[[ISO 8859-1]]'' für die westeuropäischen Sprachen, die in Deutschland als [[DIN 66303]] übernommen wurde. Deutschsprachige Versionen von [[Microsoft Windows|Windows]] (außer DOS-Fenster) verwenden die auf ISO 8859-1 aufbauende Kodierung [[Windows-1252]] – daher sehen zum Beispiel die deutschen Umlaute falsch aus, wenn Textdateien unter DOS erstellt wurden und unter Windows betrachtet werden. |
|||
So ist etwa die ASCII-Position 93 für die rechte eckige Klammer (]) in der deutschen Zeichensatz-Variante ISO 646-DE durch das große U mit [[Trema]] ([[Umlaut]]) (Ü) und in der dänischen Variante ISO 646-DK durch das große A mit Ring ([[Krouzek]]) (Å) ersetzt. Bei der Programmierung mussten die eckigen Klammern durch die entsprechenden nationalen [[Sonderzeichen]] ersetzt werden. Dies führte oft zu ungewollt komischen Ergebnissen, indem etwa die Einschaltmeldung des [[Apple II]] von „APPLE ][“ zu „APPLE ÜÄ“ mutierte. |
|||
=== Jenseits von 8 Bit === |
|||
Verschiedene Hersteller entwickelten eigene Acht-Bit-Codes. Der [[Codepage 437]] genannte Code war lange Zeit der am weitesten verbreitete, er kam auf dem [[IBM-PC]] unter [[MS-DOS]], und heute noch in [[Disk Operating System|DOS]]- oder Eingabeaufforderungs-Fenstern von [[Microsoft Windows]], zur Anwendung. |
|||
Viele ältere Programme, die das achte Bit für eigene Zwecke verwendeten, konnten damit nicht umgehen. Sie wurden im Lauf der Zeit oft den neuen Erfordernissen angepasst. |
|||
Auch 8-Bit-Codes, in denen ein Byte für ein Zeichen stand, boten zu wenig Platz, um alle Zeichen der menschlichen [[Schriftkultur]] gleichzeitig unterzubringen. Dadurch wurden mehrere verschiedene spezialisierte Erweiterungen notwendig. Daneben existieren vor allem für den ostasiatischen Raum einige ASCII-kompatible Kodierungen, die entweder zwischen verschiedenen Codetabellen umschalten oder mehr als ein Byte für jedes Nicht-ASCII-Zeichen benötigen.<ref name="Geschichte">{{Webarchiv |url=http://tiserver.cpt.haw-hamburg.de/~baran/GT1.pdf |wayback=20070928023014 |text=Grundlagen der technischen Informatik für Technische Informatiker, HAW Hamburg, Abschnitt 3.5.1}} (PDF)</ref> Keine dieser 8-Bit-Erweiterungen ist aber „ASCII“, denn das bezeichnet nur den einheitlichen 7-Bit-Code. |
|||
Auch bei späteren Standards wie [[ISO 8859]] wurden acht Bits verwendet. Dabei existieren mehrere Varianten, zum Beispiel ''[[ISO 8859-1]]'' für die westeuropäischen Sprachen. Deutschsprachige Versionen von [[Microsoft Windows|Windows]] (außer [[Disk Operating System|DOS]]-Fenster) verwenden die auf ISO 8859-1 aufbauende Kodierung Windows-1252 – daher sehen z. B. bei unter DOS erstellten Textdateien die deutschen Umlaute falsch aus, wenn man sie unter Windows ansieht. Viele ältere Programme, die das achte Bit für eigene Zwecke verwendeten, konnten damit nicht umgehen. Sie wurden im Laufe der Zeit oft den neuen Erfordernissen angepasst. |
|||
Um den |
Um den Anforderungen der verschiedenen Sprachen gerecht zu werden, wurde der [[Unicode]] (in seinem Zeichenvorrat identisch mit ''[[Universal Coded Character Set|ISO 10646]]'') entwickelt. Er verwendet bis zu 32 Bit pro Zeichen und könnte somit über vier Milliarden verschiedene Zeichen unterscheiden, wird jedoch auf etwa eine Million erlaubte [[Codepoint]]s eingeschränkt. Damit können alle bislang von Menschen verwendeten Schriftzeichen dargestellt werden, sofern sie in den Unicode-Standard aufgenommen wurden. [[UTF-8]] ist eine 8-Bit-Kodierung von Unicode, die zu ASCII abwärtskompatibel ist. Ein Zeichen kann dabei ein bis vier 8-Bit-[[Datenwort|Wörter]] einnehmen. Sieben-Bit-Varianten müssen nicht mehr verwendet werden, dennoch kann Unicode auch mit Hilfe von [[UTF-7]] in sieben Bit kodiert werden. UTF-8 entwickelte sich zum Standard unter vielen Betriebssystemen. So nutzen unter anderem Apples [[macOS]] sowie einige [[Linux-Distribution]]en standardmäßig UTF-8, und mehr als 90 %<ref>[https://w3techs.com/technologies/history_overview/character_encoding w3techs.com]</ref> der Websites werden in UTF-8 erstellt. |
||
=== Formatierungszeichen gegenüber Auszeichnungssprachen === |
|||
ASCII enthält nur wenige Zeichen, die allgemein verbindlich zur Formatierung oder Strukturierung von Text verwendet werden; diese gehen aus den Steuerbefehlen der Fernschreiber hervor. Hierzu zählen insbesondere der Zeilenvorschub (Linefeed), der Wagenrücklauf (Carriage Return), der [[Tabulator|horizontale Tabulator]], der Seitenvorschub (Form Feed) und der vertikale Tabulator. In typischen ASCII-[[Textdatei]]en findet sich neben den druckbaren Zeichen meist nur noch der Wagenrücklauf oder der Zeilenvorschub, um das Zeilenende zu markieren, wobei in DOS- und Windows-Systemen üblicherweise beide nacheinander verwendet werden, bei [[Apple]]- und [[Commodore]]-Rechnern nur der Wagenrücklauf, auf [[Unix]]-artigen Systemen nur der Zeilenvorschub. Die Verwendung weiterer Zeichen zur Textformatierung ist bei verschiedenen Anwendungprogrammen zur Textverarbeitung unterschiedlich. Zur Formatierung von Text werden inzwischen eher [[Markup]]-Sprachen wie z. B. [[Hypertext Markup Language|HTML]] verwendet. |
|||
ASCII enthält nur wenige Zeichen, die allgemeinverbindlich zur Formatierung oder Strukturierung von Text verwendet werden; diese gingen aus den Steuerbefehlen der [[Fernschreiber]] hervor. Dazu zählen insbesondere der Zeilenvorschub (Linefeed), der Wagenrücklauf (Carriage Return), das Horizontal-[[Tabulatorzeichen]], der Seitenvorschub (Form Feed) und das Vertikal-Tabulatorzeichen. In typischen ASCII-[[Textdatei]]en findet sich neben den druckbaren Zeichen meist nur noch der Wagenrücklauf oder der Zeilenvorschub, um das Zeilenende zu markieren; dabei werden in DOS- und Windows-Systemen üblicherweise beide nacheinander verwendet, bei älteren [[Apple]]- und [[Commodore International|Commodore]]-Rechnern (ohne [[Amiga]]) nur der Wagenrücklauf und auf [[Unix]]-artigen sowie Amiga-Systemen nur der Zeilenvorschub. Die Verwendung weiterer Zeichen zur Textformatierung wird unterschiedlich gehandhabt. Zur Formatierung von Text werden inzwischen eher [[Auszeichnungssprache|Markup]]-Sprachen wie zum Beispiel [[Hypertext Markup Language|HTML]] verwendet. |
|||
== Kompatible Zeichenkodierungen == |
== Kompatible Zeichenkodierungen == |
||
Die meisten [[Zeichenkodierung]]en sind so entworfen, dass sie für Zeichen zwischen 0 … 127 den gleichen Code verwenden wie ASCII und den Bereich über 127 für weitere Zeichen benutzen. |
|||
=== Kodierungen mit fester Länge (Auswahl) === |
=== Kodierungen mit fester Länge (Auswahl) === |
||
Hier steht eine feste Anzahl Bytes |
Hier steht eine feste Anzahl Bytes für jeweils ein Zeichen. In den meisten Kodierungen ist das ein Byte pro Zeichen – [[Single Byte Character Set]] oder kurz SBCS genannt. Bei den ostasiatischen Schriften sind es zwei oder mehr Byte pro Zeichen, wodurch diese Kodierungen nicht mehr ASCII-kompatibel sind. Die kompatiblen SBCS-Zeichensätze entsprechen den oben besprochenen ASCII-Erweiterungen: |
||
* [[ISO 8859]] mit 15 verschiedenen Zeichenkodierungen zur Abdeckung aller europäischen Sprachen und [[Thailändische Sprache|Thai]] |
|||
* [[ISO 8859]] mit 15 verschiedenen Zeichenkodierungen zur Abdeckung aller europäischen Sprachen, [[Türkische Sprache|Türkisch]], [[Arabische Sprache|Arabisch]], [[Ivrit|Hebräisch]] sowie [[Thailändische Sprache|Thai]] (siehe Tabelle rechts) |
|||
* [[MacRoman]], [[MacCyrillic]] und andere proprietäre Zeichensätze für Apple Mac Computer vor Mac OS X. |
|||
* [[Macintosh Roman|MacRoman]], [[MacCyrillic]] und andere proprietäre Zeichensätze für Apple Mac Computer vor Mac OS X |
|||
* Windows- und DOS-[[Codepage]]s, z. B. [[Windows-1252]] |
|||
* DOS-[[Codepage]]s (z. B. 437, 850) und Windows-Codepages ([[Windows-1252]]) |
|||
* [[KOI8-R]] für Russisch und [[KOI8-U]] für Ukrainisch |
* [[KOI8-R]] für Russisch und [[KOI8-U]] für Ukrainisch |
||
* [[ARMSCII]] für [[Armenische Sprache|Armenisch]] |
* [[Armenian Standard Code for Information Interchange|ARMSCII-8]] und ARMSCII-8a für [[Armenische Sprache|Armenisch]] |
||
* [[GEOSTD]] für [[Georgische Sprache|Georgisch]] |
* [[GEOSTD]] für [[Georgische Sprache|Georgisch]] |
||
* [[ISCII]] für alle indischen Sprachen |
* [[Indian Script Code for Information Interchange|ISCII]] für alle indischen Sprachen |
||
* [[TSCII]] für [[ |
* [[Tamil Script Code for Information Interchange|TSCII]] für [[Tamil]] |
||
* [[VISCII]] für [[Vietnamesische Sprache|Vietnamesisch]] |
|||
{| class="toptextcells" |
|||
* [[Extended UNIX Coding|EUC]] (Extended UNIX Coding) für mehrere ostasiatische Sprachen. |
|||
|- |
|||
* [[Big 5]] für traditionelles Chinesisch ([[Taiwan]], Auslandschinesen) |
|||
| |
|||
* [[Guojia Biaozhun|GB]] (Guojia Biaozhun) für vereinfachtes Chinesisch ([[VR China]]) |
|||
{{Linkbox MS-DOS-Codepages}} |
|||
| |
|||
{{Linkbox Windows-Codepages}} |
|||
| |
|||
{{Linkbox ISO 8859}} |
|||
|} |
|||
=== Kodierungen mit variabler Länge === |
=== Kodierungen mit variabler Länge === |
||
Um mehr Zeichen kodieren zu können, werden die Zeichen |
Um mehr Zeichen kodieren zu können, werden die Zeichen 0 bis 127 in einem Byte kodiert, andere Zeichen werden durch mehrere Bytes mit Werten von über 127 kodiert: |
||
* [[UTF-8]] für [[Unicode]] |
* [[UTF-8]] und [[GB 18030]] für [[Unicode]] |
||
* [[ISO 6937]] für europäische Sprachen mit lateinischer Schrift |
|||
* [[Big5]] für traditionelles Chinesisch ([[Republik China (Taiwan)]], Auslandschinesen) |
|||
* [[Extended UNIX Coding|EUC]] (Extended UNIX Coding) für mehrere ostasiatische Sprachen |
|||
* [[Chinesische Zeichenkodierung#GB2312|GB]] (Guojia Biaozhun) für vereinfachtes Chinesisch ([[Volksrepublik China|VR China]]) |
|||
== ASCII-Tabelle == |
|||
Die folgende Tabelle gibt neben den [[Hexadezimalsystem|hexadezimalen]] Codes<!--die wir schon oben haben--> auch noch die [[Dezimalsystem|Dezimal-]] und [[Oktalsystem|Oktalcodes]] an.<!--enzyklopädisch relevant?--> |
|||
{| class="toptextcells" |
|||
|- |
|||
| |
|||
{| class="wikitable" style="margin:0;" |
|||
|- class="hintergrundfarbe6" |
|||
! Dez !! Hex !! Okt !! ASCII |
|||
|- |
|||
| 0 || 00 || 000 ||<code>NUL</code> |
|||
|- |
|||
| 1 || 01 || 001 ||<code>SOH</code> |
|||
|- |
|||
| 2 || 02 || 002 ||<code>STX</code> |
|||
|- |
|||
| 3 || 03 || 003 ||<code>ETX</code> |
|||
|- |
|||
| 4 || 04 || 004 ||<code>EOT</code> |
|||
|- |
|||
| 5 || 05 || 005 ||<code>ENQ</code> |
|||
|- |
|||
| 6 || 06 || 006 ||<code>ACK</code> |
|||
|- |
|||
| 7 || 07 || 007 ||<code>BEL</code> |
|||
|- |
|||
| 8 || 08 || 010 ||<code>BS</code> |
|||
|- |
|||
| 9 || 09 || 011 ||<code>HT</code> |
|||
|- |
|||
| 10 || 0A || 012 ||<code>LF</code> |
|||
|- |
|||
| 11 || 0B || 013 ||<code>VT</code> |
|||
|- |
|||
| 12 || 0C || 014 ||<code>FF</code> |
|||
|- |
|||
| 13 || 0D || 015 ||<code>CR</code> |
|||
|- |
|||
| 14 || 0E || 016 ||<code>SO</code> |
|||
|- |
|||
| 15 || 0F || 017 ||<code>SI</code> |
|||
|- |
|||
| 16 || 10 || 020 ||<code>DLE</code> |
|||
|- |
|||
| 17 || 11 || 021 ||<code>DC1</code> |
|||
|- |
|||
| 18 || 12 || 022 ||<code>DC2</code> |
|||
|- |
|||
| 19 || 13 || 023 ||<code>DC3</code> |
|||
|- |
|||
| 20 || 14 || 024 ||<code>DC4</code> |
|||
|- |
|||
| 21 || 15 || 025 ||<code>NAK</code> |
|||
|- |
|||
| 22 || 16 || 026 ||<code>SYN</code> |
|||
|- |
|||
| 23 || 17 || 027 ||<code>ETB</code> |
|||
|- |
|||
| 24 || 18 || 030 ||<code>CAN</code> |
|||
|- |
|||
| 25 || 19 || 031 ||<code>EM</code> |
|||
|- |
|||
| 26 || 1A || 032 ||<code>SUB</code> |
|||
|- |
|||
| 27 || 1B || 033 ||<code>ESC</code> |
|||
|- |
|||
| 28 || 1C || 034 ||<code>FS</code> |
|||
|- |
|||
| 29 || 1D || 035 ||<code>GS</code> |
|||
|- |
|||
| 30 || 1E || 036 ||<code>RS</code> |
|||
|- |
|||
| 31 || 1F || 037 ||<code>US</code> |
|||
|} |
|||
| |
|||
{| class="wikitable" style="margin:0;" |
|||
|- class="hintergrundfarbe6" |
|||
! Dez !! Hex !! Okt !! ASCII |
|||
|- |
|||
| 32 || 20 || 040 ||<code>SP</code> |
|||
|- |
|||
| 33 || 21 || 041 ||<code>!</code> |
|||
|- |
|||
| 34 || 22 || 042 ||<code>"</code> |
|||
|- |
|||
| 35 || 23 || 043 ||<code>#</code> |
|||
|- |
|||
| 36 || 24 || 044 ||<code>$</code> |
|||
|- |
|||
| 37 || 25 || 045 ||<code>%</code> |
|||
|- |
|||
| 38 || 26 || 046 ||<code>&</code> |
|||
|- |
|||
| 39 || 27 || 047 ||<code>'</code> |
|||
|- |
|||
| 40 || 28 || 050 ||<code>( </code> |
|||
|- |
|||
| 41 || 29 || 051 ||<code> )</code> |
|||
|- |
|||
| 42 || 2A || 052 ||<code>*</code> |
|||
|- |
|||
| 43 || 2B || 053 ||<code>+</code> |
|||
|- |
|||
| 44 || 2C || 054 ||<code>,</code> |
|||
|- |
|||
| 45 || 2D || 055 ||<code>-</code> |
|||
|- |
|||
| 46 || 2E || 056 ||<code>.</code> |
|||
|- |
|||
| 47 || 2F || 057 ||<code>/</code> |
|||
|- |
|||
| 48 || 30 || 060 ||<code>0</code> |
|||
|- |
|||
| 49 || 31 || 061 ||<code>1</code> |
|||
|- |
|||
| 50 || 32 || 062 ||<code>2</code> |
|||
|- |
|||
| 51 || 33 || 063 ||<code>3</code> |
|||
|- |
|||
| 52 || 34 || 064 ||<code>4</code> |
|||
|- |
|||
| 53 || 35 || 065 ||<code>5</code> |
|||
|- |
|||
| 54 || 36 || 066 ||<code>6</code> |
|||
|- |
|||
| 55 || 37 || 067 ||<code>7</code> |
|||
|- |
|||
| 56 || 38 || 070 ||<code>8</code> |
|||
|- |
|||
| 57 || 39 || 071 ||<code>9</code> |
|||
|- |
|||
| 58 || 3A || 072 ||<code>:</code> |
|||
|- |
|||
| 59 || 3B || 073 ||<code>;</code> |
|||
|- |
|||
| 60 || 3C || 074 ||<code><</code> |
|||
|- |
|||
| 61 || 3D || 075 ||<code>=</code> |
|||
|- |
|||
| 62 || 3E || 076 ||<code>></code> |
|||
|- |
|||
| 63 || 3F || 077 ||<code>?</code> |
|||
|} |
|||
| |
|||
{| class="wikitable" style="margin:0;" |
|||
|- class="hintergrundfarbe6" |
|||
! Dez !! Hex !! Okt !! ASCII |
|||
|- |
|||
| 64 || 40 || 100 ||<code>@</code> |
|||
|- |
|||
| 65 || 41 || 101 ||<code>A</code> |
|||
|- |
|||
| 66 || 42 || 102 ||<code>B</code> |
|||
|- |
|||
| 67 || 43 || 103 ||<code>C</code> |
|||
|- |
|||
| 68 || 44 || 104 ||<code>D</code> |
|||
|- |
|||
| 69 || 45 || 105 ||<code>E</code> |
|||
|- |
|||
| 70 || 46 || 106 ||<code>F</code> |
|||
|- |
|||
| 71 || 47 || 107 ||<code>G</code> |
|||
|- |
|||
| 72 || 48 || 110 ||<code>H</code> |
|||
|- |
|||
| 73 || 49 || 111 ||<code>I</code> |
|||
|- |
|||
| 74 || 4A || 112 ||<code>J</code> |
|||
|- |
|||
| 75 || 4B || 113 ||<code>K</code> |
|||
|- |
|||
| 76 || 4C || 114 ||<code>L</code> |
|||
|- |
|||
| 77 || 4D || 115 ||<code>M</code> |
|||
|- |
|||
| 78 || 4E || 116 ||<code>N</code> |
|||
|- |
|||
| 79 || 4F || 117 ||<code>O</code> |
|||
|- |
|||
| 80 || 50 || 120 ||<code>P</code> |
|||
|- |
|||
| 81 || 51 || 121 ||<code>Q</code> |
|||
|- |
|||
| 82 || 52 || 122 ||<code>R</code> |
|||
|- |
|||
| 83 || 53 || 123 ||<code>S</code> |
|||
|- |
|||
| 84 || 54 || 124 ||<code>T</code> |
|||
|- |
|||
| 85 || 55 || 125 ||<code>U</code> |
|||
|- |
|||
| 86 || 56 || 126 ||<code>V</code> |
|||
|- |
|||
| 87 || 57 || 127 ||<code>W</code> |
|||
|- |
|||
| 88 || 58 || 130 ||<code>X</code> |
|||
|- |
|||
| 89 || 59 || 131 ||<code>Y</code> |
|||
|- |
|||
| 90 || 5A || 132 ||<code>Z</code> |
|||
|- |
|||
| 91 || 5B || 133 ||<code>[</code> |
|||
|- |
|||
| 92 || 5C || 134 ||<code>\</code> |
|||
|- |
|||
| 93 || 5D || 135 ||<code>]</code> |
|||
|- |
|||
| 94 || 5E || 136 ||<code>^</code> |
|||
|- |
|||
| 95 || 5F || 137 ||<code>_</code> |
|||
|} |
|||
| |
|||
{| class="wikitable" style="margin:0;" |
|||
|- class="hintergrundfarbe6" |
|||
! Dez !! Hex !! Okt !! ASCII |
|||
|- |
|||
| 96 || 60 || 140 ||<code>`</code> |
|||
|- |
|||
| 97 || 61 || 141 ||<code>a</code> |
|||
|- |
|||
| 98 || 62 || 142 ||<code>b</code> |
|||
|- |
|||
| 99 || 63 || 143 ||<code>c</code> |
|||
|- |
|||
| 100 || 64 || 144 ||<code>d</code> |
|||
|- |
|||
| 101 || 65 || 145 ||<code>e</code> |
|||
|- |
|||
| 102 || 66 || 146 ||<code>f</code> |
|||
|- |
|||
| 103 || 67 || 147 ||<code>g</code> |
|||
|- |
|||
| 104 || 68 || 150 ||<code>h</code> |
|||
|- |
|||
| 105 || 69 || 151 ||<code>i</code> |
|||
|- |
|||
| 106 || 6A || 152 ||<code>j</code> |
|||
|- |
|||
| 107 || 6B || 153 ||<code>k</code> |
|||
|- |
|||
| 108 || 6C || 154 ||<code>l</code> |
|||
|- |
|||
| 109 || 6D || 155 ||<code>m</code> |
|||
|- |
|||
| 110 || 6E || 156 ||<code>n</code> |
|||
|- |
|||
| 111 || 6F || 157 ||<code>o</code> |
|||
|- |
|||
| 112 || 70 || 160 ||<code>p</code> |
|||
|- |
|||
| 113 || 71 || 161 ||<code>q</code> |
|||
|- |
|||
| 114 || 72 || 162 ||<code>r</code> |
|||
|- |
|||
| 115 || 73 || 163 ||<code>s</code> |
|||
|- |
|||
| 116 || 74 || 164 ||<code>t</code> |
|||
|- |
|||
| 117 || 75 || 165 ||<code>u</code> |
|||
|- |
|||
| 118 || 76 || 166 ||<code>v</code> |
|||
|- |
|||
| 119 || 77 || 167 ||<code>w</code> |
|||
|- |
|||
| 120 || 78 || 170 ||<code>x</code> |
|||
|- |
|||
| 121 || 79 || 171 ||<code>y</code> |
|||
|- |
|||
| 122 || 7A || 172 ||<code>z</code> |
|||
|- |
|||
| 123 || 7B || 173 ||<code>{</code> |
|||
|- |
|||
| 124 || 7C || 174 ||<code>|</code> |
|||
|- |
|||
| 125 || 7D || 175 ||<code>}</code> |
|||
|- |
|||
| 126 || 7E || 176 ||<code>~</code> |
|||
|- |
|||
| 127 || 7F || 177 ||<code>DEL</code> |
|||
|} |
|||
|} |
|||
== Eponyme == |
|||
Der 1936 entdeckte [[Asteroid]] [[(3568) ASCII]] wurde 1988 nach der Zeichenkodierung benannt.<ref>[https://www.minorplanetcenter.net/iau/ECS/MPCArchive/1988/MPC_19880402.pdf Minor Planet Circ. 12973] (PDF; 300 kB)</ref> |
|||
== Siehe auch == |
== Siehe auch == |
||
* [[ASCII-Datei]] |
|||
* [[ASCII-Tabelle]] |
|||
* [[ASCII-Art]] |
* [[ASCII-Art]] |
||
* [[CBM-ASCII]] |
|||
* [[Bob Bemer]] |
|||
* [[Fieldata]] |
|||
== Ausgaben == |
|||
[[Kategorie:Abkürzung]] |
|||
* American Standards Association: ''American Standard Code for Information Interchange. ASA X3.4-1963.'' American Standards Association, New York 1963 ({{Webarchiv |url=http://worldpowersystems.com/archives/codes/X3.4-1963/index.html |wayback=20160526195837 |text=PDF 11 Seiten}}) |
|||
[[Kategorie:Datenformat]] |
|||
* American Standards Association: ''American Standard Code for Information Interchange. ASA X3.4-1965.'' American Standards Association, New York 1965 (genehmigt, aber nicht veröffentlicht) |
|||
[[Kategorie:Zeichenkodierung]] |
|||
* United States of America Standards Institute: ''USA Standard Code for Information Interchange. USAS X3.4-1967.'' United States of America Standards Institute, 1967. |
|||
* United States of America Standards Institute: ''USA Standard Code for Information Interchange. USAS X3.4-1968.'' United States of America Standards Institute, 1968. |
|||
* American National Standards Institute: ''American National Standard for Information Systems. ANSI X3.4-1977.'' 1977. |
|||
* American National Standards Institute: ''American National Standard for Information Systems. Coded Character Sets. 7-Bit American National Standard Code for Information Interchange (7-Bit ASCII). ANSI X3.4-1986.'' 1986. |
|||
* Weitere Revisionen: |
|||
** ANSI X3.4-1986 (R1992) |
|||
** ANSI X3.4-1986 (R1997) |
|||
** ANSI INCITS 4-1986 (R2002) |
|||
** ANSI INCITS 4-1986 (R2007) |
|||
** ANSI INCITS 4-1986 (R2012) |
|||
== Literatur == |
|||
* {{Literatur |Online=https://textfiles.meulie.net/bitsaved/Books/Mackenzie_CodedCharSets.pdf |Titel=Coded Character Sets, History and Development |Autor=Charles E. Mackenzie |Jahr=1980 |Auflage=1 |Verlag=[[Addison-Wesley]] |ISBN=978-0-201-14460-4 |Sprache=en}} |
|||
* {{Literatur |Autor=Jacques André |Titel=Caractères numériques: introduction |Hrsg=Cahiers Gutenberg|Band=26 |Datum=1997-05 |ISSN=1257-2217 |Seiten=5–44 |Sprache=fr}} |
|||
* {{Literatur |Autor=Yannis Haralambous |Titel=Fonts & encodings. From Unicode to advanced typography and everything in between |Übersetzer=P. Scott Horne |Verlag=[[O’Reilly]] |Ort=Beijing u. a. |Jahr=2007 |ISBN=978-0-596-10242-5 |Sprache=en}} |
|||
* {{Literatur |Autor=Peter Karow |Titel=Digitale Schriften. Darstellung und Formate.|Auflage=2. verbesserte Auflage. |Verlag=[[Springer Nature]] |Ort=Berlin u. a. |Jahr=1992 |ISBN=3-540-54917-X}} |
|||
* {{Literatur |Autor=Mai-Linh Thi Truong, Jürgen Siebert |Hrsg=[[Erik Spiekermann]] |Titel=FontBook. Digital Typeface Compendium |Auflage=4. überarbeitete und erweiterte Auflage. |Verlag=[[FSI FontShop International]] |Ort=Berlin |Jahr=2006|ISBN=3-930023-04-0 |Sprache=en}} |
|||
== Weblinks == |
== Weblinks == |
||
{{Commonscat|ASCII|American Standard Code for Information Interchange}} |
|||
* [http://www.cs.tut.fi/~jkorpela/chars/c0.html Erläuterungen zu den Steuerzeichen] |
|||
* {{RFC-Internet |RFC=20 |Titel=ASCII format for Network Interchange |Datum=1969-10-16 |Kommentar=ANSI X 3.4-1968}} |
|||
* [https://www.itu.int/rec/T-REC-T.50-199209-I/en ITU T.50 (09/1992) International Alphabet No. 5] (englisch) |
|||
* [https://www.iso.org/standard/4777.html ISO/IEC 646:1991] (englisch) |
|||
* [http://worldpowersystems.com/ARCHIVE/codes/X3.4-1963/index.html ASA X3.4-1963] (englisch) |
|||
* [http://jkorpela.fi/chars/c0.html Erläuterungen zu den Steuerzeichen] (englisch) |
|||
* [https://www.computer-masters.de/ascii-tabelle.php ASCII-Tabelle mit Erläuterungen] (deutsch) |
|||
* [https://cryptii.com/pipes/text-decimal Umwandlung von und zu Dezimale, Oktale, Hexadezimale und Binäre ASCII-Schreibweise] (englisch) |
|||
== Einzelnachweise == |
|||
{{Link FA|en}} |
|||
<references> |
|||
{{Link FA|es}} |
|||
<ref name="f-w-smith-1964"> |
|||
{{Literatur |
|||
|Autor=Fred W. Smith |
|||
|Titel=New American Standard Code for Information Interchange |
|||
|Sammelwerk=Western Union Technical Review |
|||
|Datum=1964-04 |
|||
|Seiten=50–58 |
|||
|Online=[http://worldpowersystems.com/archives/codes/New-ASCII/ worldpowersystems.com]}} |
|||
</ref> |
|||
<ref name="x3.4-1967"> |
|||
{{Literatur |
|||
|Hrsg=[[American National Standards Institute|United States of America Standards Institute]] |
|||
|Titel=USA Standard Code for Information Interchange USAS X3.4-1967 |
|||
|Datum=1967}} |
|||
</ref> |
|||
<ref name="incits-4-1986"> |
|||
{{Literatur |
|||
|Hrsg=[[American National Standards Institute]] |
|||
|Titel=American National Standard for Information Systems – Coded Character Sets – 7-Bit American Standard Code for Information Interchange (7-Bit ASCII) ANSI X3.4-1986 |
|||
|Datum=1986 |
|||
|Kommentar=ANSI INCITS 4-1986 [R2002] |
|||
|Online=[https://www.unicode.org/L2/L2006/06388-review-incits4.pdf unicode.org] |
|||
|Format=PDF |
|||
|KBytes=1700}} |
|||
</ref> |
|||
</references> |
|||
[[Kategorie:Datenformat]] |
|||
[[als:ASCII]] |
|||
[[Kategorie:Zeichenkodierung]] |
|||
[[ar:آسكي]] |
|||
[[Kategorie:Namensgeber für einen Asteroiden]] |
|||
[[ast:ASCII]] |
|||
[[ |
[[Kategorie:Informatik]] |
||
[[bs:ASCII]] |
|||
[[ca:ASCII]] |
|||
[[cs:ASCII]] |
|||
[[da:ASCII]] |
|||
[[el:ASCII]] |
|||
[[en:ASCII]] |
|||
[[eo:Askio]] |
|||
[[es:American Standard Code for Information Interchange]] |
|||
[[eu:ASCII]] |
|||
[[fi:ASCII]] |
|||
[[fr:American Standard Code for Information Interchange]] |
|||
[[ga:ASCII]] |
|||
[[gl:ASCII]] |
|||
[[he:ASCII]] |
|||
[[hr:ASCII]] |
|||
[[hu:ASCII]] |
|||
[[ia:ASCII]] |
|||
[[id:ASCII]] |
|||
[[it:ASCII]] |
|||
[[ja:American Standard Code for Information Interchange]] |
|||
[[ko:ASCII]] |
|||
[[ku:ASCII]] |
|||
[[lt:ASCII]] |
|||
[[lv:ASCII]] |
|||
[[ms:ASCII]] |
|||
[[nds:ASCII]] |
|||
[[nl:ASCII (tekenset)]] |
|||
[[nn:ASCII]] |
|||
[[no:ASCII]] |
|||
[[pl:ASCII]] |
|||
[[pt:ASCII]] |
|||
[[ro:ASCII]] |
|||
[[ru:ASCII]] |
|||
[[sk:ASCII]] |
|||
[[sl:ASCII]] |
|||
[[sq:ASCII]] |
|||
[[sr:Аски]] |
|||
[[sv:ASCII]] |
|||
[[th:แอสกี]] |
|||
[[tr:ASCII]] |
|||
[[uk:ASCII]] |
|||
[[vi:ASCII]] |
|||
[[zh:ASCII]] |
|||
[[zh-min-nan:ASCII]] |
Aktuelle Version vom 18. Juni 2025, 16:51 Uhr

Der American Standard Code for Information Interchange (ASCII, alternativ US-ASCII, ausgesprochen [ ],[1] deutsch „Amerikanischer Standard-Code für den Informationsaustausch“) ist eine 7-Bit-Zeichenkodierung; sie entspricht der US-Variante von ISO 646 und dient als Grundlage für spätere, auf mehr Bits basierende Kodierungen für Zeichensätze. Der ASCII-Code wurde zuerst am 17. Juni 1963 von der American Standards Association (ASA) als Standard ASA X3.4-1963 gebilligt[2]:1[3]:50 (damals noch ohne Kleinbuchstaben[4]) und 1967/68[5] wesentlich sowie zuletzt im Jahr 1986 (ANSI X3.4-1986)[6] von ihren Nachfolgeinstitutionen aktualisiert und wird noch benutzt. Die Zeichenkodierung definiert 128 Zeichen und besteht aus 33 nicht druckbaren sowie 95 darauf folgenden druckbaren Zeichen, beginnend mit dem Leerzeichen:
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
Die druckbaren Zeichen umfassen das lateinische Alphabet in Groß- und Kleinschreibung, die zehn indisch-arabischen Ziffern sowie einige Interpunktionszeichen (Satzzeichen, Wortzeichen) und andere Sonderzeichen. Der Zeichenvorrat entspricht weitgehend dem einer Tastatur oder Schreibmaschine für die englische Sprache. In Computern und anderen elektronischen Geräten, die Text darstellen, wird dieser Code in der Regel gemäß ASCII oder abwärtskompatibel (ISO 8859, Unicode) dazu gespeichert.
Die nicht druckbaren Steuerzeichen enthalten Ausgabezeichen wie Zeilenvorschub oder Tabulatorzeichen, Protokollzeichen wie Übertragungsende oder Bestätigung und Trennzeichen wie Datensatztrennzeichen.
Kodierung
[Bearbeiten | Quelltext bearbeiten]ASCII | Dez | Hex | Binär |
---|---|---|---|
A |
65 | 41 | (0)100 0001 |
B |
66 | 42 | (0)100 0010 |
C |
67 | 43 | (0)100 0011 |
… | … | … | … |
Z |
90 | 5A | (0)101 1010 |
Jedem Zeichen wird ein Bitmuster aus 7 Bit zugeordnet. Da jedes Bit zwei Werte annehmen kann, gibt es 27 = 128 verschiedene Bitmuster, die auch als die ganzen Zahlen 0–127 (hexadezimal 00hex–7Fhex) interpretiert werden können.
Das für ASCII nicht benutzte achte Bit kann für die Fehlererkennung (Paritätsbit) auf den Kommunikationsleitungen oder für andere Steuerungsaufgaben verwendet werden. Es wird aber fast immer zur Erweiterung von ASCII auf einen 8-Bit-Code verwendet. Diese Erweiterungen sind mit dem ursprünglichen ASCII weitgehend kompatibel, so dass alle im ASCII definierten Zeichen auch in den verschiedenen Erweiterungen durch die gleichen Bitmuster kodiert werden. Die einfachsten Erweiterungen sind Kodierungen mit sprachspezifischen Zeichen, die nicht im lateinischen Grundalphabet enthalten sind, vgl. unten.
Zusammensetzung
[Bearbeiten | Quelltext bearbeiten]Code | …0 | …1 | …2 | …3 | …4 | …5 | …6 | …7 | …8 | …9 | …A | …B | …C | …D | …E | …F |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0… | NUL | SOH | STX | ETX | EOT | ENQ | ACK | BEL | BS | HT | LF | VT | FF | CR | SO | SI |
1… | DLE | DC1 | DC2 | DC3 | DC4 | NAK | SYN | ETB | CAN | EM | SUB | ESC | FS | GS | RS | US |
2… | SP | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / |
3… | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
4… | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
5… | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
6… | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
7… | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ | DEL |
Die ersten 32 ASCII-Zeichencodes (von 00hex bis 1Fhex) sind für Steuerzeichen (control character) reserviert; siehe dort für die Erklärung der Abkürzungen in der rechts (oder oben) stehenden Tabelle. Diese Zeichen stellen keine Schriftzeichen dar, sondern dienen (oder dienten) zur Steuerung von solchen Geräten, die den ASCII verwenden (etwa Drucker). Steuerzeichen sind beispielsweise der Wagenrücklauf für den Zeilenumbruch oder Bell (die Glocke); ihre Definition ist historisch begründet.
Code 20hex (SP) ist das Leerzeichen (engl. space oder blank), das in einem Text als Leer- und Trennzeichen zwischen Wörtern verwendet und auf der Tastatur durch die Leertaste erzeugt wird.
Die Codes 21hex bis 7Ehex stehen für druckbare Zeichen, die Buchstaben, Ziffern und Interpunktionszeichen (Satzzeichen, Wortzeichen) umfassen. Die Buchstaben sind lediglich Klein- und Großbuchstaben des lateinischen Alphabets. In nicht-englischen Sprachen verwendete Buchstabenvarianten – beispielsweise die deutschen Umlaute – sind im ASCII-Zeichensatz nicht enthalten. Ebenso fehlen typografisch korrekte Gedankenstriche und Anführungszeichen, die Typografie beschränkt sich auf den Schreibmaschinensatz. Der Zweck war Informationsaustausch, nicht Drucksatz.
Code 7Fhex (alle sieben Bits auf eins gesetzt) ist ein Sonderzeichen, das auch als Löschzeichen bezeichnet wird (DEL). Dieser Code wurde früher wie ein Steuerzeichen verwendet, um auf Lochstreifen oder Lochkarten ein bereits gelochtes Zeichen nachträglich durch das Setzen aller Bits, das heißt durch Auslochen aller sieben Markierungen, löschen zu können. Dies war die einzige Möglichkeit zum Löschen, da einmal vorhandene Löcher nicht mehr rückgängig gemacht werden können. Bereiche ohne Löcher (also mit dem Code 00hex) fanden sich vor allem am Anfang und Ende eines Lochstreifens (NUL).
Aus diesem Grund gehörten zum eigentlichen ASCII nur 126 Zeichen, denn den Bitmustern 0 (0000000) und 127 (1111111) entsprachen keine Zeichencodes. Der Code 0 wurde später in der Programmiersprache C als „Ende der Zeichenkette“ interpretiert; dem Zeichen 127 wurden verschiedene grafische Symbole zugeordnet.
Geschichte
[Bearbeiten | Quelltext bearbeiten]Fernschreiber
[Bearbeiten | Quelltext bearbeiten]Eine frühe Form der Zeichenkodierung war der Morsecode. Er wurde mit der Einführung von Fernschreibern aus den Telegrafennetzen verdrängt und durch den Baudot-Code und Murray-Code ersetzt. Vom 5-Bit-Murray-Code zum 7-Bit-ASCII war es dann nur noch ein kleiner Schritt – auch ASCII wurde zuerst für bestimmte amerikanische Fernschreibermodelle, wie den Teletype ASR33, eingesetzt.
Die erste Version, noch ohne Kleinbuchstaben und mit kleinen Abweichungen vom heutigen ASCII bei den Steuer- und Sonderzeichen, entstand im Jahr 1963.
Im Jahr 1965 folgt die zweite Form des ASCII-Standards. Obwohl die Norm genehmigt wurde, wurde sie nie veröffentlicht und fand daher auch nie Anwendung. Der Grund dafür war, dass der ASA gemeldet wurde, dass die ISO (die International Standards Organization) einen Zeichensatz standardisieren würde, der ähnlich wie diese Norm war, aber leicht im Widerspruch zu dieser stünde.[7]
1968 wurde dann die gültige Fassung des ASCII-Standards festgelegt.[7]
Dez | Hex | ASCII 1963 (veraltet) |
ASCII 1965 (verworfen) |
ASCII 1968 (aktuell) |
---|---|---|---|---|
0–63 | 00–3F | siehe normale Zusammensetzung | ||
64 | 40 | @ |
` |
@
|
65–91 | 41–5B | siehe normale Zusammensetzung | ||
92 | 5C | \ |
~ |
\
|
93 | 5D | siehe normale Zusammensetzung | ||
94 | 5E | ↑
|
^
| |
95 | 5F | ←
|
_
| |
96 | 60 | unbelegt | @ |
`
|
97–122 | 61–7A | unbelegt | a – z
| |
123 | 7B | unbelegt | {
| |
124 | 7C | unbelegt | ¬ |
|
|
125 | 7D | unbelegt | }
| |
126 | 7E | ESC |
| |
~
|
127 | 7F | siehe normale Zusammensetzung |
Computer
[Bearbeiten | Quelltext bearbeiten]In den Anfängen des Computerzeitalters entwickelte sich ASCII zum Standard-Code für Schriftzeichen. Zum Beispiel wurden viele Terminals (VT100) und Drucker nur mit ASCII angesteuert.
Für die Kodierung lateinischer Zeichen wird fast nur bei Großrechnern die zu ASCII inkompatible 8-Bit-Kodierung EBCDIC verwendet, die IBM parallel zu ASCII für sein System/360 entwickelte, damals ein ernsthafter Konkurrent. Die Handhabung des Alphabets ist in EBCDIC schwieriger, denn es ist dort auf drei auseinander liegende Codebereiche verteilt. IBM selbst verwendete ASCII für interne Dokumente. ASCII wurde durch Präsident Lyndon B. Johnsons Anordnung 1968 gestützt, es in den Regierungsbüros zu verwenden.
Verwendung für andere Länder und Sprachen
[Bearbeiten | Quelltext bearbeiten]Mit dem Internationalen Alphabet 5 (IA5) wurde 1963 eine 7-Bit-Codierung auf Basis des ASCII als ISO 646 normiert. Die Referenzversion (ISO 646-IRV) entspricht dabei bis auf eine Position dem ASCII. Um Buchstaben und Sonderzeichen verschiedener Sprachen darstellen zu können (beispielsweise die deutschen Umlaute), wurden 12 Zeichenpositionen zur Umdefinition vorgesehen (#$@[\]^`{|}~
). Eine gleichzeitige Darstellung ist nicht möglich. Fehlende Anpassungen der Software an die jeweils zur Anzeige verwendete Variante führte oft zu ungewollt komischen Ergebnissen, so erschien beim Einschalten des Apple II „APPLE ÜÄ“ anstelle von „APPLE ][“.
Da sich darunter Zeichen befinden, die in der Programmierung verwendet werden, insbesondere die verschiedenen Klammern, wurden Programmiersprachen über Ersatzkombinationen (Digraphen) für die Internationalisierung ertüchtigt. Zur Kodierung wurden dazu ausschließlich Zeichen aus dem invarianten Teil von ISO 646 verwendet. Die Kombinationen sind sprachspezifisch. So entspricht bei Pascal (*
und *)
den geschweiften Klammern ({}
), während C <%
und %>
dafür vorsieht.
In der Sowjetunion wurde eine als KOI7 bezeichnete Abwandlung zur Darstellung kyrillischer Zeichen entwickelt.
Erweiterungen
[Bearbeiten | Quelltext bearbeiten]Nutzung der übrigen 128 Positionen im Byte
[Bearbeiten | Quelltext bearbeiten]Zur Überwindung der Inkompatibilitäten nationaler 7-Bit-Varianten von ASCII entwickelten zunächst verschiedene Hersteller eigene ASCII-kompatible 8-Bit-Codes (d. h. solche, die auf den ersten 128 Positionen mit ASCII übereinstimmen). Der Codepage 437 genannte Code war lange Zeit der am weitesten verbreitete, er kam auf dem IBM-PC unter englischem MS-DOS, und kommt noch im DOS-Fenster von englischem Windows zur Anwendung. In deren deutschen Installationen ist seit MS-DOS 3.3 die westeuropäische Codepage 850 der Standard.
Auch bei späteren Standards wie ISO 8859 wurden acht Bits verwendet. Dabei existieren mehrere Varianten, zum Beispiel ISO 8859-1 für die westeuropäischen Sprachen, die in Deutschland als DIN 66303 übernommen wurde. Deutschsprachige Versionen von Windows (außer DOS-Fenster) verwenden die auf ISO 8859-1 aufbauende Kodierung Windows-1252 – daher sehen zum Beispiel die deutschen Umlaute falsch aus, wenn Textdateien unter DOS erstellt wurden und unter Windows betrachtet werden.
Jenseits von 8 Bit
[Bearbeiten | Quelltext bearbeiten]Viele ältere Programme, die das achte Bit für eigene Zwecke verwendeten, konnten damit nicht umgehen. Sie wurden im Lauf der Zeit oft den neuen Erfordernissen angepasst.
Auch 8-Bit-Codes, in denen ein Byte für ein Zeichen stand, boten zu wenig Platz, um alle Zeichen der menschlichen Schriftkultur gleichzeitig unterzubringen. Dadurch wurden mehrere verschiedene spezialisierte Erweiterungen notwendig. Daneben existieren vor allem für den ostasiatischen Raum einige ASCII-kompatible Kodierungen, die entweder zwischen verschiedenen Codetabellen umschalten oder mehr als ein Byte für jedes Nicht-ASCII-Zeichen benötigen.[8] Keine dieser 8-Bit-Erweiterungen ist aber „ASCII“, denn das bezeichnet nur den einheitlichen 7-Bit-Code.
Um den Anforderungen der verschiedenen Sprachen gerecht zu werden, wurde der Unicode (in seinem Zeichenvorrat identisch mit ISO 10646) entwickelt. Er verwendet bis zu 32 Bit pro Zeichen und könnte somit über vier Milliarden verschiedene Zeichen unterscheiden, wird jedoch auf etwa eine Million erlaubte Codepoints eingeschränkt. Damit können alle bislang von Menschen verwendeten Schriftzeichen dargestellt werden, sofern sie in den Unicode-Standard aufgenommen wurden. UTF-8 ist eine 8-Bit-Kodierung von Unicode, die zu ASCII abwärtskompatibel ist. Ein Zeichen kann dabei ein bis vier 8-Bit-Wörter einnehmen. Sieben-Bit-Varianten müssen nicht mehr verwendet werden, dennoch kann Unicode auch mit Hilfe von UTF-7 in sieben Bit kodiert werden. UTF-8 entwickelte sich zum Standard unter vielen Betriebssystemen. So nutzen unter anderem Apples macOS sowie einige Linux-Distributionen standardmäßig UTF-8, und mehr als 90 %[9] der Websites werden in UTF-8 erstellt.
Formatierungszeichen gegenüber Auszeichnungssprachen
[Bearbeiten | Quelltext bearbeiten]ASCII enthält nur wenige Zeichen, die allgemeinverbindlich zur Formatierung oder Strukturierung von Text verwendet werden; diese gingen aus den Steuerbefehlen der Fernschreiber hervor. Dazu zählen insbesondere der Zeilenvorschub (Linefeed), der Wagenrücklauf (Carriage Return), das Horizontal-Tabulatorzeichen, der Seitenvorschub (Form Feed) und das Vertikal-Tabulatorzeichen. In typischen ASCII-Textdateien findet sich neben den druckbaren Zeichen meist nur noch der Wagenrücklauf oder der Zeilenvorschub, um das Zeilenende zu markieren; dabei werden in DOS- und Windows-Systemen üblicherweise beide nacheinander verwendet, bei älteren Apple- und Commodore-Rechnern (ohne Amiga) nur der Wagenrücklauf und auf Unix-artigen sowie Amiga-Systemen nur der Zeilenvorschub. Die Verwendung weiterer Zeichen zur Textformatierung wird unterschiedlich gehandhabt. Zur Formatierung von Text werden inzwischen eher Markup-Sprachen wie zum Beispiel HTML verwendet.
Kompatible Zeichenkodierungen
[Bearbeiten | Quelltext bearbeiten]Die meisten Zeichenkodierungen sind so entworfen, dass sie für Zeichen zwischen 0 … 127 den gleichen Code verwenden wie ASCII und den Bereich über 127 für weitere Zeichen benutzen.
Kodierungen mit fester Länge (Auswahl)
[Bearbeiten | Quelltext bearbeiten]Hier steht eine feste Anzahl Bytes für jeweils ein Zeichen. In den meisten Kodierungen ist das ein Byte pro Zeichen – Single Byte Character Set oder kurz SBCS genannt. Bei den ostasiatischen Schriften sind es zwei oder mehr Byte pro Zeichen, wodurch diese Kodierungen nicht mehr ASCII-kompatibel sind. Die kompatiblen SBCS-Zeichensätze entsprechen den oben besprochenen ASCII-Erweiterungen:
- ISO 8859 mit 15 verschiedenen Zeichenkodierungen zur Abdeckung aller europäischen Sprachen, Türkisch, Arabisch, Hebräisch sowie Thai (siehe Tabelle rechts)
- MacRoman, MacCyrillic und andere proprietäre Zeichensätze für Apple Mac Computer vor Mac OS X
- DOS-Codepages (z. B. 437, 850) und Windows-Codepages (Windows-1252)
- KOI8-R für Russisch und KOI8-U für Ukrainisch
- ARMSCII-8 und ARMSCII-8a für Armenisch
- GEOSTD für Georgisch
- ISCII für alle indischen Sprachen
- TSCII für Tamil
|
|
|
Kodierungen mit variabler Länge
[Bearbeiten | Quelltext bearbeiten]Um mehr Zeichen kodieren zu können, werden die Zeichen 0 bis 127 in einem Byte kodiert, andere Zeichen werden durch mehrere Bytes mit Werten von über 127 kodiert:
- UTF-8 und GB 18030 für Unicode
- ISO 6937 für europäische Sprachen mit lateinischer Schrift
- Big5 für traditionelles Chinesisch (Republik China (Taiwan), Auslandschinesen)
- EUC (Extended UNIX Coding) für mehrere ostasiatische Sprachen
- GB (Guojia Biaozhun) für vereinfachtes Chinesisch (VR China)
ASCII-Tabelle
[Bearbeiten | Quelltext bearbeiten]Die folgende Tabelle gibt neben den hexadezimalen Codes auch noch die Dezimal- und Oktalcodes an.
|
|
|
|
Eponyme
[Bearbeiten | Quelltext bearbeiten]Der 1936 entdeckte Asteroid (3568) ASCII wurde 1988 nach der Zeichenkodierung benannt.[10]
Siehe auch
[Bearbeiten | Quelltext bearbeiten]Ausgaben
[Bearbeiten | Quelltext bearbeiten]- American Standards Association: American Standard Code for Information Interchange. ASA X3.4-1963. American Standards Association, New York 1963 (PDF 11 Seiten ( vom 26. Mai 2016 im Internet Archive))
- American Standards Association: American Standard Code for Information Interchange. ASA X3.4-1965. American Standards Association, New York 1965 (genehmigt, aber nicht veröffentlicht)
- United States of America Standards Institute: USA Standard Code for Information Interchange. USAS X3.4-1967. United States of America Standards Institute, 1967.
- United States of America Standards Institute: USA Standard Code for Information Interchange. USAS X3.4-1968. United States of America Standards Institute, 1968.
- American National Standards Institute: American National Standard for Information Systems. ANSI X3.4-1977. 1977.
- American National Standards Institute: American National Standard for Information Systems. Coded Character Sets. 7-Bit American National Standard Code for Information Interchange (7-Bit ASCII). ANSI X3.4-1986. 1986.
- Weitere Revisionen:
- ANSI X3.4-1986 (R1992)
- ANSI X3.4-1986 (R1997)
- ANSI INCITS 4-1986 (R2002)
- ANSI INCITS 4-1986 (R2007)
- ANSI INCITS 4-1986 (R2012)
Literatur
[Bearbeiten | Quelltext bearbeiten]- Charles E. Mackenzie: Coded Character Sets, History and Development. 1. Auflage. Addison-Wesley, 1980, ISBN 978-0-201-14460-4 (englisch, meulie.net [PDF]).
- Jacques André: Caractères numériques: introduction. Hrsg.: Cahiers Gutenberg. Band 26, Mai 1997, ISSN 1257-2217, S. 5–44 (französisch).
- Yannis Haralambous: Fonts & encodings. From Unicode to advanced typography and everything in between. O’Reilly, Beijing u. a. 2007, ISBN 978-0-596-10242-5 (englisch).
- Peter Karow: Digitale Schriften. Darstellung und Formate. 2. verbesserte Auflage. Springer Nature, Berlin u. a. 1992, ISBN 3-540-54917-X.
- Mai-Linh Thi Truong, Jürgen Siebert: FontBook. Digital Typeface Compendium. Hrsg.: Erik Spiekermann. 4. überarbeitete und erweiterte Auflage. FSI FontShop International, Berlin 2006, ISBN 3-930023-04-0 (englisch).
Weblinks
[Bearbeiten | Quelltext bearbeiten]- RFC: – ASCII format for Network Interchange. 16. Oktober 1969 (ANSI X 3.4-1968, englisch).
- ITU T.50 (09/1992) International Alphabet No. 5 (englisch)
- ISO/IEC 646:1991 (englisch)
- ASA X3.4-1963 (englisch)
- Erläuterungen zu den Steuerzeichen (englisch)
- ASCII-Tabelle mit Erläuterungen (deutsch)
- Umwandlung von und zu Dezimale, Oktale, Hexadezimale und Binäre ASCII-Schreibweise (englisch)
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Charles E. Mackenzie: Coded Character Sets, History and Development. 1. Auflage. Addison-Wesley Publishing Company, Inc., 1980, ISBN 978-0-201-14460-4, S. 6, 66, 211, 215, 217, 220, 223, 228, 236–238, 243–245, 247–253, 423, 425–428, 435–439 (englisch, meulie.net [PDF; abgerufen am 25. August 2019]).
- ↑ American Standards Association (Hrsg.): American Standard Code for Information Interchange. 1963 (Scans).
- ↑ Fred W. Smith: New American Standard Code for Information Interchange. In: Western Union Technical Review. April 1964, S. 50–58 (worldpowersystems.com).
- ↑ ASCII-Code von 1963
- ↑ United States of America Standards Institute (Hrsg.): USA Standard Code for Information Interchange USAS X3.4-1967. 1967.
- ↑ American National Standards Institute (Hrsg.): American National Standard for Information Systems – Coded Character Sets – 7-Bit American Standard Code for Information Interchange (7-Bit ASCII) ANSI X3.4-1986. 1986 (unicode.org [PDF; 1,7 MB] ANSI INCITS 4-1986 [R2002]).
- ↑ a b ASA/USASI/ANSI + ISO ( vom 16. Januar 2010 im Internet Archive)
- ↑ Grundlagen der technischen Informatik für Technische Informatiker, HAW Hamburg, Abschnitt 3.5.1 ( vom 28. September 2007 im Internet Archive) (PDF)
- ↑ w3techs.com
- ↑ Minor Planet Circ. 12973 (PDF; 300 kB)