Was das Tool macht
Das String-Escape-Tool wandelt Text in eine Form um, die in ein String-Literal passt, und macht escapte Strings wieder zu normalem Text. Es unterstützt neun Ziele: JSON, JavaScript, Java und C#, Python, SQL-String-Literale, CSV-Felder, XML-Text und -Attribute, reguläre Ausdrücke und POSIX-Shell-Befehle. Jedes folgt den Regeln seiner Sprache, sodass Sie das Ergebnis ohne Syntaxfehler direkt in Ihren Code einfügen können.
Typische Anwendungen sind eine mehrzeilige Meldung oder ein Windows-Pfad in einer JSON-Konfigurationsdatei, ein HTML-Schnipsel in einem JavaScript-String, ein Dateiname mit Leerzeichen in einem Shell-Skript oder ein wörtlicher Suchbegriff wie price (USD), der als regulärer Ausdruck genau sich selbst finden soll.
So funktioniert es
- Wählen Sie Escapen oder Unescapen.
- Wählen Sie die Sprache oder das Format.
- Fügen Sie Ihren Text ein oder klicken Sie auf Beispiel. Das Ergebnis aktualisiert sich beim Tippen.
- Kopieren Sie die Ausgabe oder klicken Sie auf Als Eingabe verwenden, um die Umwandlung umzukehren und zu prüfen, ob wieder das Original herauskommt.
Bei JSON, JavaScript, Java/C# und Python können Sie zusätzlich alle Nicht-ASCII-Zeichen escapen. So erhalten Sie einen reinen ASCII-String, der jede Dateikodierung übersteht.
Beispiel
Dieselbe Zeile für verschiedene Ziele escapt:
Input: He said "hi" in C:\Temp
JSON: He said \"hi\" in C:\\Temp
SQL: He said "hi" in C:\Temp (only ' is doubled)
Regex: He said "hi" in C:\\Temp
Shell: 'He said "hi" in C:\Temp'
Regeln je Format
- JSON: escapt Anführungszeichen, Backslashes und Steuerzeichen, genau wie
JSON.stringify. - JavaScript: escapt zusätzlich einfache Anführungszeichen, Backticks, vertikale Tabulatoren und die Zeilentrenner U+2028 und U+2029.
- Java / C#: Backslash-Escapes und
\uXXXX; beim Unescapen werden auch Javas Oktal-Escapes sowie\xund\Uaus C# akzeptiert. - Python: Backslash-Escapes mit
\x,\uund\U; unbekannte Escapes bleiben, wie sie sind. - SQL: verdoppelt einfache Anführungszeichen für Standard-SQL-String-Literale.
- CSV: setzt den Wert in doppelte Anführungszeichen und verdoppelt innere Anführungszeichen, wenn er ein Komma, ein Anführungszeichen, einen Zeilenumbruch oder Leerzeichen am Rand enthält.
- XML: ersetzt die fünf vordefinierten Entitäten; beim Unescapen werden auch numerische Zeichenreferenzen dekodiert.
- Regulärer Ausdruck: setzt vor jedes Zeichen mit Sonderbedeutung einen Backslash, damit das Muster den Text wörtlich findet.
- Shell: setzt den Wert in einfache Anführungszeichen, die in POSIX-Shells jede Expansion verhindern, und schreibt innere Anführungszeichen als
'\''.
FAQ
› Was bedeutet es, einen String zu escapen?
Manche Zeichen haben in einem String-Literal eine besondere Bedeutung, etwa das Anführungszeichen, das ihn beendet, oder ein Zeilenumbruch. Beim Escapen werden sie durch eine sichere Folge ersetzt, meist einen Backslash mit einem Buchstaben, damit der String in Quellcode, eine Abfrage oder eine Datei eingefügt werden kann, ohne sie zu beschädigen.
› Füge ich die Anführungszeichen um den String mit ein?
Nein. Fügen Sie nur den Inhalt ein. Das Ergebnis gehört zwischen die Anführungszeichen in Ihrem Code. Bei CSV und Shell, die ganze Werte in Anführungszeichen setzen, ergänzt das Tool die äußeren Anführungszeichen selbst, wenn sie nötig sind.
› Reicht SQL-Escaping gegen SQL-Injection?
Verdoppelte einfache Anführungszeichen ergeben ein gültiges String-Literal, was beim Schreiben einer Abfrage von Hand oder eines Migrationsskripts hilft. Im Anwendungscode sollten Sie aber immer parametrisierte Abfragen oder Prepared Statements verwenden, statt SQL aus Strings zusammenzusetzen.
› Warum meldet das Unescapen eine unbekannte Escape-Sequenz?
Jede Sprache akzeptiert andere Escapes. JSON kennt zum Beispiel weder \x noch \0, daher zeigt das Tool die Position der ersten Sequenz, die die gewählte Sprache ablehnen würde. Python lässt unbekannte Escapes wie \d unverändert, genau wie der Python-Interpreter.
› Wird mein Text hochgeladen?
Nein. Escapen und Unescapen laufen in Ihrem Browser, es wird nichts an einen Server gesendet.