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.
Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.
| Folge | Bedeutung | Sprachen |
|---|---|---|
\n | Zeilenumbruch (LF) | alle außer SQL |
\r | Wagenrücklauf (CR) | alle außer SQL |
\t | Tabulator | alle außer SQL |
\\ | Backslash | alle außer SQL (Standard) |
\" / \' | Anführungszeichen | JS, JSON (nur \"), Python, Java, C# |
'' | einfaches Anführungszeichen in SQL | SQL |
\uXXXX | Unicode-Zeichen (4 Hex-Ziffern) | JS, JSON, Python, Java, C# |
\xHH | Byte bzw. Zeichen bis FF | JS, Python |
\u{1F600} | Unicode-Codepoint beliebiger Größe | JS (ES2015) |
\U0001F600 | Codepoint mit 8 Hex-Ziffern | Python, C# |
'\'' | einfaches Anführungszeichen in einfach quotiertem Text | Shell |
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
- Unter „Sprache“ das Ziel wählen, etwa JavaScript, Python, SQL oder Shell.
- Unter „Richtung“ Escapen oder Unescapen wählen und die Anführungszeichen festlegen.
- Den Text in „Eingabe“ einfügen; bei Bedarf „Nicht-ASCII als \u-Folge“ einschalten.
- 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
\noder\u00e4aus Logs und JSON wieder lesbar machen.
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.
Das könnte auch helfen
Base64 kodieren und dekodieren
Text in Base64 umwandeln und zurück, UTF-8-sicher, auch URL-sicheres Base64 ohne Padding.
ÖffnenURL kodieren und dekodieren
Prozentkodierung für URLs und Parameter: encodeURIComponent, encodeURI und Formular-Kodierung.
ÖffnenHTML-Entities umwandeln
Sonderzeichen und Umlaute in HTML-Entities kodieren oder Entities wieder in Klartext dekodieren.
ÖffnenHex in Text umwandeln
Hexadezimale Bytes in Text dekodieren und Text in Hex kodieren, UTF-8, mit Trennzeichen und Hex-Dump.
ÖffnenText in Binär umwandeln
Text in Binärcode aus Nullen und Einsen umwandeln und Binärcode zurück in Text übersetzen, UTF-8.
ÖffnenUnicode-Escape umwandeln
Zeichen in Escape-Sequenzen für JavaScript, JSON, Python, CSS und HTML umwandeln und zurück.
Öffnen