Escape-Zeichen
Englisch: escape character
Ein einzelnes Sonderzeichen, üblicherweise ein Steuerzeichen, das in einer Zeichenfolge anzeigt, dass die folgenden Zeichen eine alternative Interpretation haben. Der Begriff Escape-Sequenz bezieht sich auf das Escape-Zeichen und die nachfolgenden, dadurch modifizierten Zeichen.
Escape-Zeichen: das Signal, das die Regeln bricht
Ein Escape-Zeichen ist ein einzelner Steuercode, typischerweise ASCII 27 (hexadezimal 1B), das einem empfangenden Gerät oder Parser mitteilt, das nächste Zeichen oder die nächste Zeichenfolge anders zu behandeln als in ihrer normalen Bedeutung. In der Hardwaresteuerung und Datenübertragung funktioniert es als Schalter: Wenn es auftritt, setzt es die normale Interpretation aus und aktiviert einen alternativen Modus, bis die Escape-Sequenz abgeschlossen ist. Dies ist in elektrischen Systemen unverzichtbar, wenn dasselbe Zeichen in verschiedenen Kontexten unterschiedliche Bedeutungen haben soll.
In Terminal- und Display-Steuerung leitet das Escape-Zeichen Befehlssequenzen für Drucker, CRT-Monitore und industrielle Displays ein. Eine typische Escape-Sequenz könnte ESC gefolgt von einer Klammer und alphanumerischen Codes sein, wie ESC[2J, das einen Terminal-Bildschirm in ANSI-Standard-Systemen löscht. Speicherprogrammierbare Steuerungen (SPS) und Numerische Steuerungen (NC) verwenden Escape-Zeichen, um zwischen Daten-Nutzlast und Maschinenbefehlen zu unterscheiden. Ohne das Escape-Zeichen würde ein Gerät jedes Byte identisch behandeln und könnte formatierte Anweisungen nicht ausführen.
Häufige Kontexte und Varianten
Verschiedene Protokolle verwenden unterschiedliche Escape-Zeichen. ASCII 27 dominiert die Terminal-Kommunikation. In Modem- und Telekommunikationsgeräten dienen Control-S (ASCII 19) und Control-Q (ASCII 17) als Flusskontroll-Escapes. Fernschreibsysteme verwendeten historisch andere Konventionen. Einige industrielle Protokolle nutzen den Backslash (ASCII 92) als Escape in Zeichenketten-Literalen, um einer begrenzten Zeichenkette ein Anführungszeichen zu ermöglichen, indem es vorangestellt wird: \" steht für ein literales doppeltes Anführungszeichen innerhalb von begrenztem Text. Die Wahl des Escape-Zeichens wird durch den Kommunikationsstandard oder die verwendete Programmiersprache definiert, nicht durch das Gerät selbst.
Kollision und Mehrdeutigkeit sind die größten operativen Kopfschmerzen. Wenn ein Escape-Zeichen in den Daten statt als Befehlsmarker auftritt, missinterpretiert der Empfänger das Folgende. Deshalb verwenden einige Systeme doppelte Escapes: zwei aufeinanderfolgende Escape-Zeichen stellen ein einzelnes literales Escape-Zeichen in der Ausgabe dar. In Legacy-Systemen und modernen eingebetteten Geräten gleichermaßen führt nachlässiger Umgang mit Escape-Sequenzen zu verstümmelter Ausgabe, fehlgeschlagenen Befehlen und blockierten Schnittstellen. Techniker, die Kommunikationsfehler beheben, finden oft, dass Escape-Zeichen fehlen, doppelt vorhanden sind oder den falschen Code-Punkt verwenden.
Der Begriff Escape stammt von der Idee, dass das Zeichen die Übertragung aus dem normalen Interpretationsmodus befreien lässt. Es ist ein Metazeichen, das heißt, es beschreibt Daten, anstatt sie darzustellen. Das Verständnis von Escape-Sequenzen ist entscheidend für alle, die industrielle Terminals konfigurieren, Firmware für eingebettete Steuerungen schreiben oder serielle Kommunikationsleitungen debuggen, bei denen die Hardware formatierte Ausgaben an Displays oder Log-Systeme sendet.