Zeichen escapen für JavaScript, Python, SQL und Shell

Zeichen escapen für JavaScript, JSON, Python, Java, C#, SQL, Shell und Regex: Strings sicher als Literal schreiben oder vorhandene Escape-Sequenzen wieder auflösen.

Eingabe
Ergebnis

Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.

FolgeBedeutungSprachen
\nZeilenumbruch (LF)alle außer SQL
\rWagenrücklauf (CR)alle außer SQL
\tTabulatoralle außer SQL
\\Backslashalle außer SQL (Standard)
\" / \'AnführungszeichenJS, JSON (nur \"), Python, Java, C#
''einfaches Anführungszeichen in SQLSQL
\uXXXXUnicode-Zeichen (4 Hex-Ziffern)JS, JSON, Python, Java, C#
\xHHByte bzw. Zeichen bis FFJS, Python
\u{1F600}Unicode-Codepoint beliebiger GrößeJS (ES2015)
\U0001F600Codepoint mit 8 Hex-ZiffernPython, C#
'\''einfaches Anführungszeichen in einfach quotiertem TextShell

String escapen: Regeln je Sprache

Wer Text in Quelltext einbettet, muss bestimmte Zeichen escapen: Anführungszeichen würden den String beenden, ein Zeilenumbruch ist in den meisten Sprachen innerhalb eines Literals nicht erlaubt, und der Backslash leitet selbst Escape-Sequenzen ein. Dieses Werkzeug kann Zeichen escapen für JavaScript, JSON, Python, Java, C#, SQL, Shell und reguläre Ausdrücke und löst vorhandene Escape-Sequenzen wieder auf. So können Sie jeden String escapen, ohne die Regeln jeder Sprache im Kopf zu haben.

Die Unterschiede sind größer, als man denkt. JSON erlaubt nur wenige Folgen und verlangt doppelte Anführungszeichen. Java übersetzt \u-Folgen schon vor dem Parsen, deshalb nutzt das Werkzeug dort für Steuerzeichen Oktalfolgen. Beim SQL escapen wird ein einfaches Anführungszeichen verdoppelt; MySQL wertet zusätzlich Backslashes aus, deshalb gibt es dafür eine eigene Einstellung. Beim Shell escapen setzt das Werkzeug den Text in einfache Anführungszeichen und schreibt enthaltene Apostrophe als '\'', in doppelten Anführungszeichen werden $, `, " und \ geschützt. Beim Regex escapen erhalten alle Sonderzeichen wie . * + ? ( ) [ ] { } | ^ $ einen Backslash.

Wichtig: Für Datenbankabfragen ist Escapen kein Ersatz für vorbereitete Anweisungen (Prepared Statements) mit Parametern, die SQL-Injection zuverlässig verhindern. Für Shell-Befehle aus Programmen sind Aufrufe ohne Shell mit einer Argumentliste sicherer. Das Werkzeug ist für Literale in Quelltext, Tests und Konfiguration gedacht. Nur JSON-Strings bearbeitet auch JSON escapen, einzelne Unicode-Folgen Unicode-Escape.

Anleitung: Zeichen escapen in 4 Schritten

  1. Unter „Sprache“ das Ziel wählen, etwa JavaScript, Python, SQL oder Shell.
  2. Unter „Richtung“ Escapen oder Unescapen wählen und die Anführungszeichen festlegen.
  3. Den Text in „Eingabe“ einfügen; bei Bedarf „Nicht-ASCII als \u-Folge“ einschalten.
  4. Das Ergebnis mit „Kopieren“ in den Quelltext übernehmen.

Typische Anwendungsfälle

  • Einen mehrzeiligen Text oder eine Fehlermeldung als String-Literal in Code oder Tests einbauen.
  • Benutzereingaben in einem regulären Ausdruck wörtlich suchen, ohne dass Punkte oder Klammern stören.
  • Einen Shell-Befehl mit Leerzeichen und Anführungszeichen in Dateinamen sicher zusammensetzen.
  • Escape-Folgen wie \n oder \u00e4 aus Logs und JSON wieder lesbar machen.
Fragen

Häufige Fragen

Was bedeutet escapen?

Ein Zeichen escapen heißt, es so zu schreiben, dass es nicht als Steuerzeichen der Sprache wirkt. Meist steht dafür ein Backslash davor, etwa \" für ein Anführungszeichen im String.

Wie escape ich ein Apostroph in SQL?

Indem Sie es verdoppeln: 'O''Reilly'. Besser ist es, Werte als Parameter einer vorbereiteten Anweisung zu übergeben, dann ist kein Escapen nötig.

Welche Zeichen muss ich in einem regulären Ausdruck escapen?

Die Sonderzeichen . * + ? ^ $ { } ( ) | [ ] \ und in JavaScript-Literalen auch /. Andere Zeichen wie - oder # brauchen außerhalb von Zeichenklassen keinen Backslash.

Warum sind JSON und JavaScript nicht gleich?

JSON ist strenger: nur doppelte Anführungszeichen, keine \x- oder \u{…}-Folgen, kein \v und kein \0. Ein JavaScript-String ist deshalb nicht immer gültiges JSON.

Wie schreibe ich einen Text mit ' in der Shell?

In einfachen Anführungszeichen gibt es kein Escape. Man beendet den String, setzt ein escaptes Apostroph und öffnet neu: 'It'\''s'. Alternativ funktionieren doppelte Anführungszeichen.

Warum muss ich in Java-Strings Steuerzeichen nicht mit \u schreiben?

Java ersetzt \u-Folgen schon vor dem eigentlichen Übersetzen. Ein \u000a würde den String mitten im Quelltext umbrechen und einen Fehler auslösen. Das Werkzeug nutzt dafür \n oder Oktalfolgen.

Was ist der Unterschied zwischen ' und " in der Shell?

In einfachen Anführungszeichen wird nichts ausgewertet, auch kein $ oder \. In doppelten Anführungszeichen ersetzt die Shell Variablen und Befehle; dort müssen $, `, " und \ escapet werden.

Weitere Werkzeuge

Das könnte auch helfen

Alle 558 Werkzeuge