# ISO 646

ISO 646 definiert das sogenannte Internationale Alphabet Nr. 5 (International Alphabet No. 5, IA5), eine Gruppe von Zeichensätzen zur Übermittlung und Speicherung von Daten. Sie entspricht weitgehend dem Zeichensatz (US-)ASCII.

## Geschichte

IA5 wurde 1963 von der ISO als Norm IS 646 und gleichzeitig von CCITT als Empfehlung V.3 beschlossen. Das CCITT hat die Empfehlung V.3 im Jahr 1984 überarbeitet und neu als T.50 verabschiedet. T.50 erhielt 1992 eine Überarbeitung, dessen Zeichensatz dann als International Reference Alphabet (IRA) bezeichnet wurde. IA1 ist das Morsealphabet, IA2 der in 5 Bits kodierte Zeichensatz von Fernschreibern.
Für die nationalen Versionen sind 12 Positionen im Zeichensatz für national definierte Zeichen freigegeben. Die deutsche Variante ist in DIN 66003 festgelegt und ist als Variante 21 registriert; sie nutzt acht der nationalen Positionen für das Paragrafzeichen, große und kleine Umlaute und das ß. Diese Zeichen ersetzen z. B. die eckigen und geschweiften Klammern von ASCII. US-ASCII ist laut Norm die nationale Version Nr. 6, aber in der Praxis ist US-ASCII die internationale Version, aufgrund ihrer Unterstützung durch die Computerhersteller in aller Welt. Die so gut wie nie verwendete offizielle internationale Version enthält nicht das Dollarzeichen, da die Sowjetunion sonst ihre Zustimmung zu der Norm verweigert hätte.
In der Schweiz wurde teils Codepage 1021 verwendet. Sie folgt der ISO 646, ist aber nicht als nationale Variante registriert. Sie wurde in DEC-Terminals (DEC NRCS) und von IBM für ihre DEC-Emulation verwendet. In der CP 1021 sind die kleinen Umlaute und französischen Zeichen enthalten.
Nicht alle nationalen Varianten erlangten die gleiche Verbreitung; die niederländische Variante etwa enthält keine Zeichen, die zum Drucken niederländischer Texte unbedingt notwendig sind, weshalb die meisten in den Niederlanden verkauften Computer den unveränderten ASCII-Zeichensatz und eine US-amerikanische Tastaturbelegung verwendeten.
Die nationalen Versionen in ISO 646 wurden ab den 1980er Jahren in der Praxis durch den De-facto-Standard der 8-Bit-MS-DOS-Codepages des IBM-PC und durch die ebenfalls achtbittigen ISO-8859-Zeichensätze abgelöst – letztere werden z. B. in Linux und Microsoft Windows verwendet. Alle diese Standards beruhen, anders als die nationalen Versionen von ISO 646, auf dem unveränderten ASCII-Zeichensatz. Die zusätzlich benötigten Zeichen ersetzen nicht länger ASCII-Zeichen, sondern werden zu diesen hinzugefügt. Dadurch wurde die Austauschbarkeit von Daten zwischen Rechnern verschiedener Länder vereinfacht; auch für Programmierer außerhalb der USA wurde das Leben leichter, da viele der in der ISO-646-Norm zum Ersetzen freigegebenen Zeichen des US-ASCII, die in den anderen ISO-646-Varianten ja somit teilweise oder völlig fehlen, häufig in vielen Programmiersprachen vorkommen.
ISO 646 bildet(e) auch die Grundlage für die Zeichenkodierung beim Videotext.
Inzwischen müssen diese 8-Bit-Zeichensätze wiederum allmählich dem Unicode weichen.
Man beachte die Beziehung der Nummern der Normen ISO 646 für das IA5 und ISO 10646 für UCS bzw. Unicode.

## Aufbau

IA5 entspricht weitgehend dem US-amerikanischen ASCII, dient aber auch als IRV (Internationale Referenz-Version) für standardisierte nationale Varianten des IA5. Diese nationalen Varianten wurden auf älteren Computersystemen (vor-PC) häufig genutzt, um z. B. deutsche Umlaute darzustellen. ISO 646 war z. B. auf dem Apple IIe und in CP/M-Computern die übliche Methode, nichtenglische Sonderzeichen darzustellen.
Jedes Zeichen bzw. Kontrollzeichen in IA5 wird genau wie in ASCII mit 7 Bit kodiert. Der Zeichensatz umfasst Groß- und Kleinbuchstaben, Ziffern, Interpunktionszeichen und in den unteren 32 Stellen Zeichen zur Steuerung von Datenkommunikation oder von Ausgabegeräten.
Einige nationale Varianten von ISO 646 :
| Zeichenposition: | 23 | 24 | 40 | 5B | 5C | 5D | 5E | 60 | 7B | 7C | 7D | 7E |
| ISO 646-IRV | # | ¤ | @ | [ | \ | ] | ^ | ` | { | | | } | ~ |
| Deutschland | # | $ | § | Ä | Ö | Ü | ^ | ` | ä | ö | ü | ß |
| Schweiz | ù | $ | à | é | ç | ê | î | ô | ä | ö | ü | û |
| USA (ASCII) | # | $ | @ | [ | \ | ] | ^ | ` | { | | | } | ~ |
| Großbritannien | £ | $ | @ | [ | \ | ] | ^ | ` | { | | | } | ~ |
| Frankreich | £ | $ | à | ° | ç | § | ^ | ` | é | ù | è | ¨ |
| Kanada | # | $ | à | â | ç | ê | î | ô | é | ù | è | û |
| Finnland | # | $ | @ | Ä | Ö | Å | Ü | é | ä | ö | å | ü |
| Norwegen | # | $ | @ | Æ | Ø | Å | ^ | ` | æ | ø | å | ~ |
| Schweden | # | $ | É | Ä | Ö | Å | Ü | é | ä | ö | å | ü |
| Italien | £ | $ | § | ° | ç | é | ^ | ù | à | ò | ù | ì |
| Niederlande | £ | $ | ¾ | ÿ | ½ | | | ^ | ` | ¨ | ƒ | ¼ | ´ |
| Spanien | £ | $ | § | ¡ | Ñ | ¿ | ^ | ` | ° | ñ | ç | ~ |
| Portugal | # | $ | @ | Ã | Ç | Õ | ^ | ` | ã | ç | õ | ~ |