ISO 2022

1.3.5 ISO 2022

Die 7-Bit-Zeichensätze ASCII und ISO 646 fanden eine große Verbreitung und wurden (auch in vielen proprietären Varianten) auf den Rechnersystemen verschiedener Hersteller eingesetzt. Allerdings gab es dabei ein Problem: Es hat sich ziemlich schnell gezeigt, daß 7-Bit-Zeichensätze einfach nicht ausreichen, um internationale Texte aus mehreren Sprachen zu kodieren. Das hat auch dazu geführt, daß viele Hersteller dann doch ihre proprietären, auf ASCII beziehungsweise auf ISO 646 basierenden, 8-Bit-Zeichensätze entwickelten. Diese wiesen zwar die doppelte Anzahl von Code-Positionen auf, brachten aber aufgrund der nicht vorgenommenen systemübergreifenden Normierung wiederum Probleme beim Dokumentenaustausch mit sich.

Wegen dieser Schwierigkeiten wurde versucht, 8-Bit-Zeichensätze zu standardisieren, um so eine größere Einheitlichkeit zu erreichen.

Zu diesem Zweck wurde von der ISO zunächst ISO 2022 (Character Code Structure and Extension Techniques) definiert. ISO 2022 gibt vor, wie 7- und 8-Bit-Zeichensätze strukturiert und erweitert werden sollten. Dafür wurden Code-Tabellen für 7- und 8-Bit-Zeichensätze verwendet: Die Code-Tabellen für 7-Bit-Zeichensätze bestehen wie bei ASCII aus 128 Positionen, die in 8 Spalten und 16 Zeilen angeordnet werden. Die Code-Tabellen für 8-Bit-Zeichensätze bestehen aus 256 Positionen, die in 16 Spalten und 16 Zeilen angeordnet werden.

Die 7-Bit-Code-Tabelle, die in Abbildung 8 dargestellt wird, ist in zwei Bereiche aufgeteilt:

  • Die Spalten 00 und 01 bilden den CL-Bereich (control characters left).

  • Die Spalten 02 bis 07 bilden den GL-Bereich (graphic characters left).

Der GL-Bereich kann Schriftzeichen (graphic characters) enthalten. Der CL-Bereich kann Steuerzeichen (control characters) enthalten. In den Abbildungen wird die Code-Tabelle ähnlich wie in Abbildung 7 mit acht Spalten (00 bis 07) dargestellt. Im Unterschied zu Abbildung 7 sind hier die Zeilen allerdings mit dezimalen Nummern versehen. Einige Positionen haben fest definierte Bedeutungen:

  • 01/11 ist für das Escape-Zeichen (ESC) reserviert.

  • 02/00 ist für das Leerzeichen (SP) reserviert.

  • 07/15 ist für das Delete-Zeichen (DEL) reserviert.

Das Escape-Zeichen stellt insofern eine Besonderheit dar, als daß es Steuerzeichensequenzen einleiten kann, die das Ausführen bestimmer Steuerfunktionen bewirken. Eine dieser Steuerfunktionen ist das Überlagern eines Bereichs, zum Beispiel GL, durch sogenannte Code-Elemente. Hiebei handelt es sich um Zeichensätze, die 96 (16 Zeilen und 6 Spalten) oder 94 (zwei Positionen sind reserviert) Zeichen umfassen und in den dafür vorgesehenen Bereich passen.

Abbildung 8. Die 7-Bit-Code-Tabelle von ISO 2022

Für die Definition von 8-Bit-Codes wird die Anzahl der Spalten der Codetabelle verdoppelt, so daß zusätzlich zu den bereits vorhandenen 94 (bzw. 96) Positionen 94 weiteren Positionen für Schriftzeichen (und weitere Positionen für Steuerzeichen) geschaffen werden.

Abbildung 9. Die 8-Bit-Code-Tabelle von ISO 2022

Wie man an den vorgestellten Code-Tabellen sieht, können die darin enthaltenen Zeichensätze immer nur einen begrenzten Zeichenvorrat bieten, der zu einem bestimmten Zeitpunkt benutzt werden kann. In ISO 2022 wurden daher sogenannte Codeerweiterungstechniken definiert, die benutzt werden können, um zwischen mehreren 7- oder 8-Bit-Zeichensätzen hin- und herzuschalten.

Beim Shifting werden zwei Varianten unterschieden:

Single Shift

Das Umschalten gilt nur für ein (das nächste) Zeichen.

Locking Shift

Das Umschalten gilt solange, bis eine weitere Umschaltung erfolgt.

Mit dem Begriff Hin- und Herschalten ist dabei gemeint, daß Teile des Zeichensatzes in die Bereiche GL und GR geladen werden und dann durch Angabe der Zeichencodes verwendet werden können. Dieser Teil wird dann der aktive Zeichensatz genannt. Sollen nun andere Teile des Zeichensatzes benutzt werden, muß dies durch definierte Folgen von Steuerzeichen ausgedrückt werden. Diese Steuerfunktionen dienen also dazu, das Umschalten (englisch Shifting) auszulösen und ermöglichen so den Zugriff auch auf andere Zeichen als die des zur Zeit aktiven Zeichensatzes.

Um in Dokumenten, die Zeichen aus vielen verschiedenen Zeichensätzen verwenden, beim Umschalten nicht immer sehr lange Zeichensatzbezeichner zur vollqualifizierten Bezeichnung von Zeichensätzen verwenden zu müssen, sieht ISO 2022 ein zweistufiges Aktivierungskonzept vor, bei dem zwischen Aufruf und Bereitstellung unterschieden wird: Die Zeichensätze können zunächst in “Zwischenspeicher” geladen werden (englisch designation). Vier solcher Zwischenspeicher (G0,G1,G2 und G3) sind definiert. Bei diesem initialen Bereitstellen wird durch geeignete Steuercodesequenzen angegeben, welcher Zeichensatz in welche Speicherposition geladen werden soll.

Für den Aufruf (englisch invocation) sieht ISO 2022 dann generische Steuercodesequenzen vor, die für das eigentliche Shifting verwendet werden. Dabei könnte dann zum Beispiel angeben werden, daß der in Speicherposition G0 vorgehaltene Zeichensatz in den Bereich GR geladen und somit aktiviert werden soll.

ISO 2022 definiert den Aufbau von Codetabellen und die beschriebenen Erweiterungstechniken des Bereitstellens und Aktivierens von Zeichensätzen, spezifiziert allerdings noch nicht, welche spezifische Bedeutung die einzelnen Steuercodesequenzen zum Laden von Zeichensätzen haben. Aus diesem Grund definiert ISO 2375 eine Vorgehensweise für das Registrieren von Steuercodesequenzen, die dann in ISO-2022-Anwendungen verwendet werden können.