Steuerzeichen

Frühe Symbole der 32 Steuerzeichen. (ISO 2047, MIL-STD-188-100, 1972)

Als Steuerzeichen, auch Steuerkode oder Steuercode, englisch control, werden die Zeichen eines Zeichensatzes bezeichnet, die keine darstellbaren Zeichen repräsentieren – darstellbare Zeichen sind beispielsweise Buchstaben, Ziffern und Satzzeichen. Ursprünglich wurden sie zur Ansteuerung von Textausgabegeräten wie Textdruckern, Schreibautomaten, Telegrammgeräten oder Fernschreibern verwendet. Durch Steuerzeichen ist es möglich, Steuerungsbefehle für die Ausgabegeräte innerhalb des Zeichensatzes zu übertragen, anstatt die Steuerungsinformationen über ein anderes Protokoll zu übertragen.

Heute haben nur noch wenige Steuerzeichen eine Bedeutung (z. B. Line Feed, Form Feed, Carriage Return, Escape), die meisten werden praktisch nicht mehr verwendet. Manchmal nutzt man sie auch, um Zeichen zu übertragen, die im verwendeten Zeichensatz sonst nicht definiert sind.

In einer Zeichentabelle sind zumeist sowohl darstellbare Zeichen als auch Steuerzeichen definiert, beim meistverwendeten ASCII-Code sind Steuerzeichen die Zeichen 0 bis 31 und das Zeichen 127. Um Steuerzeichen als grafische Symbole sichtbar zu machen, beispielsweise zur Kontrolle der Datenübertragung, sind die Unicode-Zeichen des Bereichs Control Pictures[1] (U+2400 bis U+243F) vorgesehen.

C0-Steuerzeichen

Legende zur folgenden Tabelle 
Dez Codewert des Zeichens im dezimalen Zahlensystem
Hex Codewert des Zeichens im hexadezimalen Zahlensystem
Ctrl Übliche Schreibweise („Caret-Notation“) als Steuercode

Das Steuerzeichen kann so auf der Tastatur eingegeben werden: Das einleitende ^ steht dabei für Ctrl (control) bzw. auf deutschen Tastaturen die Strg-Taste (Steuerung). Diese wird gedrückt gehalten, während das zweite Zeichen eingegeben wird.

C Die „\x“-Zeichen geben die Schreibweise für dieses Zeichen in der Programmiersprache C und davon abgeleiteten Sprachen, wie etwa C++, Java und vor allem Skriptsprachen, Shells, und anderen an. Diese Schreibweise wird üblicherweise in Zeichenketten interpretiert, z. B.
printf("Ein\tTab\nZeilenumbruch\rWagenrücklauf");
ISO offizielle Abkürzung für das Steuerzeichen (nach ISO-646-Standard)
U grafisches Unicode-Symbol aus dem Block U+2400–243F[1]
Typ Zeichentyp:
  • CC = Communication Control (engl. für Protokollzeichen)
  • FE = Format Effector (engl. für Ausgabezeichen)
  • IS = Information Separator (engl. für Trennzeichen)
Englisch offizieller Name, für den die Abkürzung steht (nach Unicode bzw. ISO/IEC 10646)
Deutsch deutsche Bezeichnung des englischen Namens nach DIN 66003
(ursprüngliche) Bedeutung Bedeutung des Steuerzeichens

Die kursiven Erläuterungen beschreiben die veraltete Bedeutung, die heutzutage als historisch anzusehen ist und nicht mehr verwendet wird.

ASCII- oder C0-Steuerzeichen
Dez Hex Ctrl C ISO U Typ Englisch Deutsch (ursprüngliche) Bedeutung
0 0x00 ^@ \0 NUL Null Nullzeichen Zeichen ohne Informationsgehalt. Kann nach Belieben in eine Nachricht eingefügt werden und wird vom Empfänger verworfen.
Markiert das Ende einer Zeichenkette in C.
1 0x01 ^A SOH CC Start of Heading Anfang des Kopfes Markiert den Anfang der maschinen­lesbaren Zieladresse oder Routing Information. Die Kopfzeile wird mit dem Zeichen STX beendet.
2 0x02 ^B STX CC Start of Text Anfang des Textes Markiert den Anfang der zu über­tragenden Nachricht und damit das Ende der Kopfzeile.
3 0x03 ^C ETX CC End of Text Ende des Textes Markiert das Ende der zu über­tragenden Nachricht.
Als „Abbruch“-Zeichen für Terminaleingabe benutzt.
4 0x04 ^D EOT CC End of Transmission Ende der Übertragung Markiert das Ende der gesamten Über­tragung, welche aus mehreren Nach­richten inkl. Kopfzeilen bestehen kann.
Als „Programm-Abbruch“ für manche Befehls­interpreter benutzt.
Als „Ende der Eingabe“ für Terminaleingabe benutzt.
5 0x05 ^E ENQ CC Enquiry Stationsaufforderung In einer bidirektionalen Kommunikations­einrichtung eine Anfrage. Die Gegen­station kann mit ihrer Identifikation oder mit dem Status antworten. Auf deutschen Fern­schreibern meist „Wer Da?“ genannt.
6 0x06 ^F ACK CC Acknowledge Positive Rückmeldung Steuerzeichen, das die positive Antwort auf eine voran­gegangene Anfrage ausdrückt.
7 0x07 ^G \a BEL Bell Klingel Erzeugt ein Tonsignal (Glocke oder Beep) am empfangenden Terminal. Benutzt als Alarmzeichen oder Aufmerksamkeits­zeichen.
8 0x08 ^H \b BS FE Backspace Rückwärtsschritt Bewegt den Druckkopf/Cursor eine Position zurück.
Die Folge ´ Backspace e erzeugt auf einem Fernschreiber oder Drucker ein é, auf einem Videoterminal oder einer Terminalemulation oft nur ein e.
9 0x09 ^I \t HT FE Horizontal Tab Zeichen-Tabulator Bewegt den Druckkopf/Cursor zur nächsten vordefinierten Position (Tab-Stop) in der aktuellen Zeile.
10 0x0A ^J \n LF FE Line Feed Zeilenschritt Bewegt den Druckkopf/Cursor in die nächste Zeile.
Wenn zwischen Sender und Empfänger abgesprochen, bedeutet es „New Line“, wobei die erste Druck­position der nächsten Zeile angefahren wird. Wird u. a. in unixoiden Systemen (Unix, BSD, macOS, Linux) als „Zeilenendezeichen“ benutzt. Unter MS-DOS oder Windows wird mit der Kombination „Carriage Return“ + „Line Feed“ eine Zeile beendet.
11 0x0B ^K \v VT FE Vertical Tab Zeilentabulatorzeichen Bewegt den Druckkopf/Cursor zur nächsten vordefinierten Zeile.
12 0x0C ^L \f FF FE Form Feed Formularvorschub Bewegt den Druckkopf/Cursor zur ersten Druck­position auf der nächsten Seite (Seitenumbruch). (Wirft die aktuelle Seite aus, löscht den Bildschirm).
13 0x0D ^M \r CR FE Carriage Return Rückführen Bewegt den Wagen/Druckkopf/Cursor zurück in die erste Druckposition der aktuellen Zeile.
Wird in BASIC als Zeilen­umbruch verwendet. Wird beim klassischem Mac OS bis Version 9 als Zeilenende­zeichen („New line“) benutzt. Unter MS-DOS oder Windows wird mit der Kombination „Carriage Return“ + „Line Feed“ eine Zeile beendet. Carriage Return kann bei Terminals oder Druckern verwendet werden, um in eine Zeile mehrmals zu schreiben (z. B. Ladebalken).
14 0x0E ^N SO Shift Out Dauerumschaltung Umschaltung auf besondere Darstellung, z. B. Fettschrift bei einem Drucker.
15 0x0F ^O SI Shift In Rückschaltung Rückschaltung auf normale Darstellung.
16 0x10 ^P DLE CC Data Link Escape Datenübertragungs­umschaltung Gibt den folgenden Zeichen eine besondere Bedeutung. Darf nur für zusätzliche Protokoll-Zeichen benutzt werden.
17 0x11 ^Q DC1 Device Control 1 Gerätesteuerzeichen 1 Gerätespezifische Steuerzeichen, etwa um bestimmte Geräte­funktionen (z. B. Schriftart bei Druckern) ein- und auszuschalten.
DC3 ^S (XOFF) und DC1 ^Q (XON) werden zur Flusskontrolle bei XON/XOFF eingesetzt.
18 0x12 ^R DC2 Device Control 2 Gerätesteuerzeichen 2
19 0x13 ^S DC3 Device Control 3 Gerätesteuerzeichen 3
20 0x14 ^T DC4 Device Control 4 Gerätesteuerzeichen 4
21 0x15 ^U NAK CC Negative Acknowledge Negative Rückmeldung Drückt die negative Antwort auf eine vorangegangene Anfrage aus.
22 0x16 ^V SYN CC Synchronous Idle Synchronisierung Ermöglicht bei synchronen Daten­übertragungen die Synchronisierung auch bei Abwesenheit von zu übertragenden Signalen.
23 0x17 ^W ETB CC End of Transmission Block Ende des Datenübertragungsblockes Zeigt das Ende eines Blocks von übertragenen Datenblöcken an, wenn dieses Block­ende nicht aus den Daten selbst erkannt werden kann.
24 0x18 ^X CAN Cancel Ungültig Zeigt an, dass die gerade über­tragenen Daten fehlerhaft sind oder waren und verworfen werden müssen.
25 0x19 ^Y EM End of Medium Ende der Aufzeichnung Zeigt das (physische oder logische) Ende des Speichermediums an.
26 0x1A ^Z SUB Substitute Substitution Steht als Ersatz für ein Zeichen, das ungültig oder fehlerhaft ist, z. B. wegen eines Paritäts­fehlers bei der Übertragung.
Dateiendezeichen (EOF, End of File) für Textdateien unter CP/M mangels bytegenauer Dateilängen, war anfänglich, obwohl unnötig, auch unter DOS üblich.
27 0x1B ^[ ESC Escape Escape Gibt den folgenden Zeichen eine besondere Bedeutung, leitet eine Escape-Sequenz ein.
28 0x1C ^\ FS IS File Separator Hauptgruppen-Trennzeichen (Informations-Trennzeichen Vier) Trennzeichen, die Datenblöcke logisch unterteilen. Die genaue Bedeutung der logischen Einheiten „File“, „Group“, „Record“, „Unit“ ist nicht festgelegt, sie soll aber von „File“ als oberste Gliederungseinheit nach „Unit“ als unterste Gliederungs­einheit geordnet sein.
29 0x1D ^] GS IS Group Separator Gruppen-Trennzeichen (Informations-Trennzeichen Drei)
30 0x1E ^^ RS IS Record Separator Untergruppen-Trennzeichen (Informations-Trennzeichen Zwei)
31 0x1F ^_ US IS Unit Separator Teilgruppen-Trennzeichen (Informations-Trennzeichen Eins)
127 0x7F DEL Delete Zeichen löschen Das DEL-Zeichen weist einen Binärcode aus lauter Einsen auf. Das hat einen historischen Grund: Einmal in einen Lochstreifen gestanzte Löcher kann man nicht wieder füllen, man kann aber alle übrigen Löcher eines Zeichens auslochen und es damit zu einem nicht­druckenden Steuerzeichen 'BU' (im 5-Kanal-Baudot-Code) machen, also auf diese Weise eine Fehleingabe überschreiben. Daher steht dieses Zeichen auch für „gelöschtes Zeichen“ oder „deleted“.

C1-Steuerzeichen

Die in ISO 8859 für all seine Unterstandards neu definierten Steuerzeichen werden kaum verwendet und sind inzwischen nur noch von historischem Interesse. Die meisten Windows-Zeichensätze, einschließlich CP 1252, belegen diese Codepositionen mit druckbaren Zeichen, die im korrespondierenden ISO-Standard, bspw. ISO 8859-1, nicht enthalten sind.

Alle C1-Steuerzeichen sind über Escapesequenzen auch als C0-Steuerzeichen abbildbar, siehe ANSI-Escapesequenz.

ISO-8859- oder C1-Steuerzeichen
Dez Hex IETF[2] ISO[3] Zeichenname Kommentar
128 0x80 PA PAD Padding Character Reserviertes Steuerzeichen; in einem DIS-10646-Entwurf angedacht, jedoch nie in die ISO-10646-Norm aufgenommen. In Unicode als XXX markiert.
129 0x81 HO HOP High Octet Preset
130 0x82 BH BPH Break Permitted Here Eine Position, an der ein Zeilenumbruch stattfinden kann. Vergleichbar mit dem breitenlosen Leerzeichen, Unicode U+200B zero width space.
131 0x83 NH NBH No Break Here Eine Position, an der kein Zeilenumbruch stattfinden soll. Vergleichbar mit Unicode U+2060 word joiner.
132 0x84 IN IND Index Versetzt die aktuelle Position eine Zeile nach unten, behält dabei aber die horizontale Position bei. Die Index-Funktion wurde mit der 4. Ausgabe von ECMA-48 (1986) als veraltet deklariert und in der 5. Ausgabe (1991) gestrichen.
133 0x85 NL NEL Next Line Schiebt die aktuelle Position an den Anfang der nächsten Zeile, alternativ an die Home oder Line-Limit-Position. NEL ist an der gleichen Position wie EBCDIC NL (englisch Next Line).
134 0x86 SA SSA Start of Selected Area
135 0x87 ES ESA End of Selected Area
136 0x88 HS HTS Character Tabulation Set Setzt einen Tabulatorstopp an der aktiven Position. Vor ECMA-48 (4. Ausgabe, 1986) als „Horizontal Tabulation Set“ bezeichnet.
137 0x89 HJ HTJ Character Tabulation with Justification Verschiebt einen Text an die nächste Tabulatorstopp-Position. Als Text wird der Teil von der vorigen Tabulatorstopp- bis zur aktiven Position verstanden. Vor ECMA-48 (4. Ausgabe, 1986) als „Horizontal Tabulation with Justify“ bezeichnet.
138 0x8A VS VTS Line Tabulation Set Setzt einen vertikalen Tabulatorstopp auf der aktiven Zeile. Vor ECMA-48 (4. Ausgabe, 1986) als „Vertical Tabulation Set“ bezeichnet.
139 0x8B PD PLD Partial Line Forward Vor ECMA-48 (5. Ausgabe, 1991) als „Partial Line Down“ bezeichnet.
140 0x8C PU PLU Partial Line Backward Vor ECMA-48 (5. Ausgabe, 1991) als „Partial Line Up“ bezeichnet.
141 0x8D RI RI Reverse Line Feed Verschiebt die vorige Zeile und behält dabei die horizontale Position bei. Vor ECMA-48 (4. Ausgabe, 1986) als „Reverse Index“ bezeichnet.
142 0x8E S2 SS2 Single Shift 2 Zeichensatz G2 für 1 Zeichen nach GL laden
143 0x8F S3 SS3 Single Shift 3 Zeichensatz G3 für 1 Zeichen nach GL laden
144 0x90 DC DCS Device Control String Startzeichen einer Steuersequenz, die mit ST („String Terminator“) beendet wird; kann ein Kommando für das empfangende Gerät oder einen Statusbericht des sendenden Gerätes enthalten.
145 0x91 P1 PU1 Private Use One Reserviert, keine standardisierte Bedeutung.
146 0x92 P2 PU2 Private Use Two
147 0x93 TS STS Set Transmit State
148 0x94 CC CCH Cancel Character
149 0x95 MW MW Message Waiting Setzt einen „Message Waiting“-Indikator im empfangenden Gerät.
150 0x96 SG SPA Start Protected Area Legt mit der darauffolgenden Zeichenkette, die eine Liste von Zeichenpositionen enthält, einen Bereich fest, der gegen manuelles Verändern oder Übertragen geschützt ist; ein Löschschutz ist optional. Die Zeichenkette ist mit EPA („End Protected Area“) zu beenden. Die Funktion heißt „Start of Protected Area“ gem. ANSI X3.64 und ECMA-48 (1979), „Start of Guarded Protected Area“ gem. ISO 6429 (1983) und ECMA-48 (1984) oder „Start of Guarded Area“ gem. ISO 6429 (1992) und ECMA-48 (1986 und 1991).
151 0x97 EG EPA End Protected Area Legt das Ende einer Zone fest, die mit SPA begonnen wurde. Die Funktion heißt „End of Protected Area“ gemäß ANSI X3.64 und ECMA-48 (1979), „End of Guarded Protected Area“ gem. ISO 6429 (1983) und ECMA-48 (1984) oder „End of Guarded Area“ gem. ISO 6429 (1992) und ECMA-48 (1986 und 1991).
152 0x98 SS SOS Start Of String Markiert den Beginn einer Steuer-Zeichenkette, die mit ST („String Terminator“) beendet wird. Die Zeichenkette darf kein weiteres SOS (152 dezimal bzw. 98 hexadezimal) enthalten. Die Interpretation der Zeichenkette obliegt dem jeweiligen Programm.
153 0x99 GC SGCI Single Graphic Character Introducer Reserviertes Steuerzeichen; in einem DIS-10646-Entwurf angedacht, jedoch nie in die ISO-10646-Norm aufgenommen. In Unicode als XXX markiert.
154 0x9A SC SCI Single Character Introducer Führt die durch ein einzelnes nachfolgendes Byte definierte Funktion aus, welche jedoch nicht standardisiert wurden. Ebenfalls die Einleitung einer proprietären VT100-Steuersequenz.
155 0x9B CI CSI Control Sequence Intro Einleitung einer Steuersequenz. Siehe ANSI-Escapesequenz.
156 0x9C SI ST String Terminator Zeichen für das Ende einer Zeichenkette, die mit APC, DCS, OSC, PM oder SOS begonnen wurde.
157 0x9D OC OSC Operating System Command Markiert den Beginn einer „Operating System Command“-Zeichenkette, die mit ST („String Terminator“) beendet wird. Die Interpretation der Zeichenkette obliegt dem jeweiligen Betriebssystem.
158 0x9E PM PM Privacy Message Markiert den Beginn einer „Privacy Message“, die mit ST („String Terminator“) beendet wird.
159 0x9F AC APC Application Program Command Markiert den Beginn einer „Application Program Command“-Zeichenkette, die mit ST („String Terminator“) beendet wird. Die Interpretation der Zeichenkette obliegt dem jeweiligen Programm.

Unicode

Die Steuerzeichen des ASCII-Bereichs 0x00 bis 0x1F finden sich in Unicode unter C0 Controls[4] (U+0000 bis U+001F), die des ISO-8859-Bereichs 0x80 bis 0x9F unter C1 Controls[5] (U+0080 bis U+009F). Die ersten 128 Zeichen in der Unicode-Kodierung UTF-8 entsprechen denen der ASCII- und ISO-8859-Kodierung, somit gilt dies auch für die Steuerzeichen des Bereichs 0x00 bis 0x1F. Neben diesen Zeichen gibt es eine Reihe weiterer Steuerzeichen in Unicode.

Grafische Symbole für die Steuerzeichen finden sich im Unicode-Bereich Control Pictures[1] (U+2400 bis U+243F).

Eingabe unter MS-Windows oder DOS

Testweise können Steuerzeichen auch unter Windows eingegeben werden. Durch Festhalten der (linken) Alt-Taste und nachfolgendes Eintippen des Dezimalcodes eines Steuerzeichens auf dem Ziffernblock der Tastatur kann ein Steuerzeichen am Prompt eingegeben werden.

Beispiel: Eingabeaufforderung öffnen, Alt+(0 und 7 auf der numerischen Tastatur) protokolliert am Prompt das Zeichen ^G, damit wird auch klar: Strg + G bewirkt das Gleiche. Wird jetzt Enter (oder ^M) gedrückt, wird dieses Steuerzeichen im Terminalfenster ausgeführt und es ertönt aus dem Systemlautsprecher (soweit vorhanden und aktiv) ein spezieller Ton, was der Klingel (BEL) entspricht (siehe Tabelle oben). Ebenso löscht Alt+(0 und 8) wie der Druck auf Backspace (oder Strg + H) ein Zeichen. BASIC-Interpreter, die eigene Tastaturtreiber verwenden (z. B. GW-BASIC), akzeptieren auch hexadezimale ASCII-Codes der Form &hZZ, wobei Z für eine Hex-Ziffer steht (z. B. &h0D für Wagenrücklauf).

Siehe auch

Einzelnachweise

  1. a b c unicode.org (PDF; 111 kB).
  2. RFC 1345 – Character Mnemonics & Character Sets. Juni 1992 (englisch).
  3. ISO 8859
  4. unicode.org (PDF; 476 kB).
  5. unicode.org (PDF; 573 kB).