EMZETT.
Login

Special Characters (Escape-Sequenzen)

Kurz: Eine Zeichenkombination, die ein Sonderzeichen darstellt, das sich sonst nicht direkt in einen String schreiben ließe — z. B. \n für einen Zeilenumbruch oder \" für ein Anführungszeichen innerhalb eines in Anführungszeichen stehenden Strings.

Genauer: Das Backslash-Zeichen (\) leitet die Escape-Sequenz ein und signalisiert: “das nächste Zeichen ist keine normale Textangabe, sondern eine besondere Bedeutung”. Ohne Escape-Sequenz ließe sich z. B. ein Anführungszeichen innerhalb eines mit Anführungszeichen begrenzten Strings gar nicht eindeutig schreiben, weil der String sonst dort vorzeitig enden würde.

Im Detail

\n   - Zeilenumbruch (newline)
\t   - Tabulator
\\   - ein einzelner Backslash (der Backslash selbst muss escaped werden)
\"   - Anführungszeichen innerhalb eines doppelt-in-Anführungszeichen-Strings
\'   - Apostroph innerhalb eines einfach-in-Anführungszeichen-Strings
\r   - Wagenrücklauf (carriage return, relevant für Windows-Zeilenenden)
\0   - Null-Byte (Stringende in manchen Sprachen wie C)

Ein konkretes Beispiel, warum das nötig ist:

text = "Sie sagte: "Hallo"" # FEHLER - der String endet schon beim zweiten Anführungszeichen
text = "Sie sagte: \"Hallo\""  # RICHTIG - die inneren Anführungszeichen sind escaped

Der Compiler/Interpreter liest einen String zeichenweise und weiß eigentlich: “ein Anführungszeichen beendet den String.” Ohne Escape-Sequenz gäbe es keine Möglichkeit, dem Parser mitzuteilen “dieses Anführungszeichen ist Teil des Textinhalts, nicht das Stringende” — der Backslash davor macht genau diesen Unterschied.

Ein häufiger Stolperstein ist \\ — weil der Backslash selbst die Escape-Sequenz einleitet, muss ein tatsächlicher Backslash im Textinhalt (z. B. in einem Windows-Dateipfad wie C:\Nutzer\Dokumente) doppelt geschrieben werden. Genau das ist eine typische Fehlerquelle beim Einlesen von Pfaden aus Konfigurationsdateien: "C:\Nutzer" wird vom Parser fälschlich als \N (unbekannte Escape-Sequenz) interpretiert statt als literaler Backslash gefolgt von “Nutzer”. Viele Sprachen bieten deshalb “Raw Strings” an (z. B. Pythons r"C:\Nutzer"), in denen Escape-Sequenzen bewusst NICHT interpretiert werden.

Über Escape-Sequenzen hinaus gibt es noch Unicode-Escapes für Zeichen, die sich nicht direkt über die Tastatur eingeben lassen, z. B. \u00e9 für “é” — nützlich, wenn Quelltext-Dateien nur mit ASCII-Zeichen gespeichert werden sollen, der String aber internationale Zeichen enthalten muss.

Siehe auch: Strings, String Concatenation