Escape-Sequenz
Escape-Sequenzen (von englisch to escape: entfliehen, entgehen, entkommen) sind Zeichenkombinationen, die Sonderfunktionen ausführen. Bei einem Bildschirmterminal sind dies z. B. Cursor-Positionierung, bei einem Drucker ist dies z. B. Umschaltung auf eine andere Schriftgröße.
Der Name leitet sich aus dem ersten Zeichen der Sequenz ab, dem ESC-Zeichen mit dem Hexadezimal-Code '1B', dezimal 27, nach dem ASCII-Zeichensatz, welches spätestens seit 1968 als Umschaltzeichen zwischen normaler Bedeutung der Zeichen und Sonderfunktion benutzt wurde.[1]
Um beim Programmieren nicht-druckbare Steuerzeichen im Quelltext darzustellen, wird bestimmten Folgen von druckbaren Zeichen eine besondere Bedeutung gegeben, indem ein bestimmtes Zeichen vorangestellt wird. So steht in der Programmiersprache C innerhalb einer Zeichen- oder Zeichenketten-Konstanten beispielsweise ein \n für einen Zeilenumbruch, ein \t für ein Tabulatorzeichen und ein \" für ein Anführungszeichen (während das einfache " nicht Teil einer Zeichenketten-Konstanten ist, sondern deren Ende bezeichnet). Eine solche Zeichenfolge wird in Übertragung der alten Funktionsbezeichnung ebenfalls Escape-Sequenz genannt, obwohl das eigentliche ESC-Zeichen dabei keine Verwendung mehr findet. In ähnlicher Weise wird von WinWord in den Bearbeitungsfunktionen „Suchen“/„Ersetzen“ das Zeichen ^ verwendet, beispielsweise ^t für den Tabulator. Siehe dazu auch bei Maskierungszeichen.
Inhaltsverzeichnis |
[Bearbeiten] Escape-Sequenzen in Drucker- und Terminalsprachen
Nach wie vor werden Escape-Sequenzen bei der Ansteuerung von Druckern sowie von Terminals und Terminalemulationen verwendet. Beispiele für Escape-Sequenz-basierte Druckersprachen sind:
- ESC/P (Epson)
- PCL (Hewlett-Packard)
Andere Druckersprachen, wie beispielsweise PostScript, arbeiten jedoch nicht mit Escape-Sequenzen; und Drucker für die 8-Bit-Rechner von Commodore wurden über Befehle an Sekundäradressen auf dem IEC-Bus angesteuert.
Im Terminalbereich sind die ANSI-Escape-Sequenzen, welche auf den Escape-Sequenzen des Terminals VT100 beruhen, weit verbreitet.[2] Sie wurden als ANSI X3.41-1974 und X3.64-1977 allgemeiner Standard. Sequenzen bestehen dabei aus dem Steuerzeichen Escape und einer Folge von druckbaren Zeichen. Beispiele: ESC c (Reset Terminal), ESC [K (Zeile ab Cursor löschen), ESC [PnA (n ist eine Dezimalzahl, Cursor um n Zeilen aufwärts). Dieser Standard wurde so populär, dass Konsolentreiber wie ANSI.SYS für MS-DOS und OS/2, die virtuellen Konsolen und Terminal-Fenster der meisten Unix-artigen Betriebssysteme (wie beispielsweise Mac OS X und Linux) oder auch die Shell des AmigaOS diese Sequenzen ebenfalls unterstützen.
[Bearbeiten] Escape-Sequenzen in C und verwandten Programmiersprachen
In C und zu C verwandten Programmiersprachen wie C++, CSharp, Java, awk, Perl und JavaScript können in Zeichenfolgen durch folgende Escape-Sequenzen häufig benötigte Steuerzeichen eingefügt werden (wobei nicht alle dieser Sprachen alle hier aufgeführten Sequenzen unterstützen). Die Bezeichnungen vieler Steuerzeichen stammen noch aus der Zeit, als Ausgaben vorwiegend auf Fernschreibern und Druckern erfolgten.
| \' | Einfaches Anführungszeichen |
| \" | Doppeltes Anführungszeichen |
| \? | Fragezeichen |
| \\ | umgekehrter Schrägstrich |
| \0 | Nullzeichen (NUL, nicht die Ziffer 0) |
| \a | akustisches Signal (von englisch alert) |
| \b | Rückschritt (von englisch backspace) |
| \e | Ansi Escape, heximal 0x1B (von englisch escape)
Ein Escapezeichen für eine höhere Interpretationsebene, siehe oben. Nicht Bestandteil von ISO C und ISO C++ |
| \f | Seitenvorschub (von englisch form feed) |
| \n | Zeilenvorschub (von englisch new line) |
| \r | Wagenrücklauf (von englisch carriage return) |
| \t | Horizontaler Tabulator (von englisch horizontal tabulator) |
| \v | Vertikaler Tabulator (von englisch vertical tabulator) |
| \xhh.. | Direkte Zeichenauswahl durch folgende Hexadezimalziffern hh (von hexadezimal). Beispiel: \x40 entspricht dem Zeichen '@'. Falls die so gebildete Hexadezimalzahl größer ist, als in einem Zeichen dargestellt werden kann, ist das Ergebnis implementierungsabhängig. |
| \ooo | Direkte Zeichenauswahl durch folgende ein bis drei Oktalziffern ooo. Beispiel \100 entspricht dem Zeichen '@'.\0 ist ein Spezialfall dieser Regel. |
| \uhhhh | Unicode-Zeichen; Es müssen stets vier Hexadezimalziffern hhhh folgen. Beispiel:\u20ac für das Euro-Symbol U+20AC "€" |
| \Uhhhhhhhh | Unicode-Zeichen; Es müssen stets acht Hexadezimalziffern folgen. Beispiel: \U0001D49C steht für das Unicode-Zeichen U+1D49C 𝒜 (MATHEMATICAL SCRIPT CAPITAL A) |
Durch den Einfluss der stark verbreiteten Programmiersprache C finden sich dieselben Escape-Sequenzen auch in anderen Zusammenhängen wieder, z. B. in bestimmten Konfigurationsdateien.
[Bearbeiten] Einzelnachweise
[Bearbeiten] Weblinks
- 9 Escape-Sequenz
- Epson Esc/P Reference (PDF-Datei)
- HP PCL/PJL Reference (PCL 5 Printer Language) - Technical Reference Manual Part I (bpl13210) (PDF-Datei; 2,97 MB)