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 escapedDer 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