Fluchtcharakter – Wikipedia

Zeichen, das eine alternative Interpretation für nachfolgende Zeichen in einer Zeichenfolge aufruft

In der Computer- und Telekommunikationsbranche Escape-Zeichen ist ein Zeichen, das eine alternative Interpretation der folgenden Zeichen in einer Zeichenfolge aufruft. Ein Escape-Charakter ist ein besonderer Fall von Metazeichen. Im Allgemeinen hängt die Beurteilung, ob etwas ein Fluchtcharakter ist oder nicht, vom Kontext ab.

Definition[edit]

Ein Escape-Zeichen hat möglicherweise keine eigene Bedeutung, daher bestehen alle Escape-Sequenzen aus zwei oder mehr Zeichen.

Escape-Zeichen sind Teil der Syntax für viele Programmiersprachen, Datenformate und Kommunikationsprotokolle. Für ein bestimmtes Alphabet besteht der Zweck eines Escape-Zeichens darin, Zeichensequenzen (sogenannte Escape-Sequenzen) zu starten, die anders interpretiert werden müssen als dieselben Zeichen, die ohne das vorangestellte Escape-Zeichen vorkommen.

Die Funktionen von Escape-Sequenzen umfassen:

  • So codieren Sie eine syntaktische Entität wie Gerätebefehle oder spezielle Daten, die nicht direkt durch das Alphabet dargestellt werden können.
  • Zur Darstellung von Zeichen, bezeichnet als Zeichen zitieren, die im aktuellen Kontext nicht eingegeben werden können oder eine unerwünschte Interpretation haben würden. In diesem Fall ist eine Escape-Sequenz ein Digraph, der aus einem Escape-Zeichen selbst und einem “Anführungszeichen” besteht.

Steuerzeichen[edit]

Im Allgemeinen ist ein Escape-Zeichen kein besonderer Fall von (Geräte-) Steuerzeichen oder umgekehrt. Wenn wir Steuerzeichen als nicht grafisch definieren oder eine besondere Bedeutung für ein Ausgabegerät (z. B. Drucker oder Textterminal) haben, ist jedes Escapezeichen für dieses Gerät ein Steuerzeichen. Bei der Programmierung verwendete Escape-Zeichen (z. B. der Backslash “”) sind grafisch und daher keine Steuerzeichen. Umgekehrt haben die meisten (aber nicht alle) ASCII- “Steuerzeichen” isoliert eine Steuerfunktion, daher sind sie keine Escapezeichen.

In vielen Programmiersprachen bildet ein Escape-Zeichen auch einige Escape-Sequenzen, die als Steuerzeichen bezeichnet werden. Beispielsweise hat Zeilenumbruch eine Escape-Sequenz von n.

Beispiele[edit]

JavaScript[edit]

JavaScript verwendet die (Backslash) als Escape-Zeichen für:[1][2]

  • ' einfaches Anführungszeichen
  • " doppeltes Anführungszeichen
  • \ Backslash
  • n Neue Zeile
  • r Wagenrücklauf
  • t Tab
  • b Rücktaste
  • f Formularvorschub
  • v vertikale Registerkarte (Internet Explorer 9 und ältere Leckereien 'v wie 'v anstelle einer vertikalen Registerkarte ('x0B). Wenn die Cross-Browser-Kompatibilität ein Problem darstellt, verwenden Sie x0B Anstatt von v.)
  • Nullzeichen (U + 0000 NULL) (nur wenn das nächste Zeichen keine Dezimalstelle ist; andernfalls handelt es sich um eine oktale Escape-Sequenz)
  • xFF Zeichen, dargestellt durch das hexadezimale Byte “FF”

Notiere dass der v und Escapezeichen sind in JSON-Strings nicht zulässig.

ASCII-Escape-Zeichen[edit]

Das ASCII-Escape-Zeichen (oktal: 33, hexadezimal: x1B, oder ^[, or, in decimal, 27) is used in many output devices to start a series of characters called a control sequence or escape sequence. Typically, the escape character was sent first in such a sequence to alert the device that the following characters were to be interpreted as a control sequence rather than as plain characters, then one or more characters would follow to specify some detailed action, after which the device would go back to interpreting characters normally. For example, the sequence of ^[, followed by the printable characters [2;10H, would cause a DEC VT102 terminal to move its cursor to the 10th cell of the 2nd line of the screen. This was later developed to ANSI escape codes covered by the ANSI X3.64 standard. The escape character also starts each command sequence in the Hewlett Packard Printer Command Language.

An early reference to the term “escape character” is found in Bob Bemer’s IBM technical publications, who is credited with inventing this mechanism during his work on the ASCII character set.[3]

Die Escape-Taste befindet sich normalerweise auf Standard-PC-Tastaturen. Es fehlt jedoch häufig auf Tastaturen für PDAs und andere Geräte, die nicht primär für die ASCII-Kommunikation ausgelegt sind. Die DEC VT220-Serie war eine der wenigen beliebten Tastaturen ohne dedizierte Esc-Taste, anstatt eine der Tasten über der Haupttastatur zu verwenden. In Benutzeroberflächen der 1970er bis 1980er Jahre war es nicht ungewöhnlich, diesen Schlüssel als Escape-Zeichen zu verwenden, aber in modernen Desktop-Computern wird diese Verwendung weggelassen. Manchmal wurde der Schlüssel mit AltMode identifiziert (für den alternativen Modus). Selbst ohne dedizierten Schlüssel könnte der Escape-Zeichencode durch Eingabe generiert werden [ while simultaneously holding down Ctrl.

Programming and data formats[edit]

Viele moderne Programmiersprachen geben das doppelte Anführungszeichen an (") als Trennzeichen für ein String-Literal. Der Backslash () Das Escape-Zeichen bietet normalerweise zwei Möglichkeiten, um doppelte Anführungszeichen in ein Zeichenfolgenliteral aufzunehmen, indem entweder die Bedeutung des in die Zeichenfolge eingebetteten doppelten Anführungszeichens geändert wird (" wird ") oder durch Ändern der Bedeutung einer Zeichenfolge einschließlich des Hexadezimalwerts eines doppelten Anführungszeichens (x22 wird ").

C, C ++, Java und Ruby erlauben genau dieselben zwei Backslash-Escape-Stile. Die PostScript-Sprache und das Microsoft Rich Text-Format verwenden auch Backslash-Escapezeichen. Die in Anführungszeichen druckbare Codierung verwendet das Gleichheitszeichen als Escapezeichen.

URL und URI verwenden% -escapes, um Zeichen mit einer besonderen Bedeutung in Anführungszeichen zu setzen, wie bei Nicht-ASCII-Zeichen. Das kaufmännische Und (&) Zeichen können in SGML und abgeleiteten Formaten wie HTML und XML als Escapezeichen betrachtet werden.

Einige Programmiersprachen bieten auch andere Möglichkeiten zur Darstellung von Sonderzeichen in Literalen, ohne dass ein Escapezeichen erforderlich ist (siehe z. B. Trennzeichen-Kollision).

Kommunikationsprotokolle[edit]

Das Point-to-Point-Protokoll (PPP) verwendet das 0x7D Oktett (175oder ASCII: }) als Fluchtcharakter. Das unmittelbar folgende Oktett sollte von XOR-verknüpft werden 0x20 bevor sie an ein übergeordnetes Protokoll übergeben werden. Dies gilt für beide 0x7D selbst und das Steuerzeichen 0x7E (wird in PPP verwendet, um den Anfang und das Ende eines Rahmens zu markieren), wenn diese Oktette von einem von PPP gekapselten Protokoll höherer Ebene übertragen werden müssen, sowie von anderen Oktetten, die ausgehandelt werden, wenn die Verbindung hergestellt wird. Das heißt, wenn ein Protokoll höherer Ebene senden möchte 0x7Dwird es als Sequenz übertragen 0x7D 0x5D, und 0x7E wird übertragen als 0x7D 0x5E.

Bourne Shell[edit]

In der Bourne-Shell (sh) ist das Sternchen (*) und Fragezeichen (?) Zeichen sind Platzhalterzeichen, die durch Globbing erweitert wurden. Ohne ein vorangestelltes Escape-Zeichen kann ein * wird auf die Namen aller Dateien im Arbeitsverzeichnis erweitert, die nicht genau dann mit einem Punkt beginnen, wenn es solche Dateien gibt, andernfalls * bleibt nicht erweitert. Um auf eine Datei mit dem wörtlichen Namen “*” zu verweisen, muss die Shell angewiesen werden, sie nicht auf diese Weise zu interpretieren, indem ihr ein Backslash vorangestellt wird (). Dies ändert die Interpretation des Sterns (*). Vergleichen Sie:

rm *    # delete all files in the current directory

rm *   # delete the file named *

Windows-Eingabeaufforderung[edit]

Der Windows-Befehlszeileninterpreter verwendet ein Caret-Zeichen (^) um reservierten Zeichen mit besonderen Bedeutungen zu entkommen (insbesondere: &, |, (, ), <, >, ^).[4] Der DOS-Befehlszeileninterpreter unterstützt dies zwar nicht, unterstützt jedoch keine ähnliche Syntax.

In der Windows-Eingabeaufforderung führt dies beispielsweise zu einem Syntaxfehler.

Dabei wird die Zeichenfolge ausgegeben: <hello world>

Windows PowerShell[edit]

In Windows wird der Backslash als Pfadtrennzeichen verwendet. Daher kann es im Allgemeinen nicht als Escape-Zeichen verwendet werden. PowerShell verwendet Backtick[5] (`) stattdessen.

Zum Beispiel der folgende Befehl:

echo "`tFirst line`nNew line"

Wird ausgegeben:

Andere[edit]

Siehe auch[edit]

Verweise[edit]

Externe Links[edit]

Dieser Artikel enthält gemeinfreies Material aus dem Dokument zur Verwaltung allgemeiner Dienste: "Federal Standard 1037C".