# Steuerzeichen

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 (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 |
| 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 | 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. |
| 19 | 0x13 | ^S | | DC3 | ␓ | | Device Control 3 | Gerätesteuerzeichen 3 | 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. |
| 20 | 0x14 | ^T | | DC4 | ␔ | | Device Control 4 | Gerätesteuerzeichen 4 | 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. |
| 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) | 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. |
| 30 | 0x1E | ^^ | | RS | ␞ | IS | Record Separator | Untergruppen-Trennzeichen (Informations-Trennzeichen Zwei) | 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. |
| 31 | 0x1F | ^_ | | US | ␟ | IS | Unit Separator | Teilgruppen-Trennzeichen (Informations-Trennzeichen Eins) | 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. |
| 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 | ISO | 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 | Reserviertes Steuerzeichen; in einem DIS-10646-Entwurf angedacht, jedoch nie in die ISO-10646-Norm aufgenommen. In Unicode als XXX markiert. |
| 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 | Reserviert, keine standardisierte Bedeutung. |
| 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 (U+0000 bis U+001F), die des ISO-8859-Bereichs 0x80 bis 0x9F unter C1 Controls (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 (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).