Was dieses Werkzeug tut
Ihr Text wird zu einem JSON-String-Literal: umschließende Anführungszeichen, und jedes Zeichen, das nicht roh stehen darf, durch seine Escape-Form ersetzt.
"wird zu\", ein Backslash wird zu\\;- ein Zeilenumbruch wird zu
\n, ein Tabulator zu\t, ein Wagenrücklauf zu\r; - andere Steuerzeichen werden zu
\u00XX.
é und 😀 bleiben, wie sie sind. JSON ist Unicode, und eine lesbare Zeichenkette ist besser als eine Wand aus Escapes.
Zwei Zeichen, die gewöhnliche Kodierer roh lassen
U+2028 (Zeilentrenner) und U+2029 (Absatztrenner) kommen als \u2028 und \u2029 heraus. Ein üblicher JSON-Kodierer lässt sie literal.
Beide Schreibweisen sind gültiges JSON. Die escapte ist sicherer, und der Grund ist historisch und weiterhin aktuell: In JavaScript vor ES2019 waren diese beiden Zeichen Zeilenendezeichen, ein String-Literal mit einem rohen davon war also ein Syntaxfehler. Alles, was JSON nimmt und als JavaScript auswertet — ein altes eval, ein JSONP-Endpunkt, ein Bundler, der eine Datendatei einbettet — läuft hinein. Escapen kostet drei Zeichen und beseitigt die ganze Fehlerklasse.
Eine einzelne Surrogathälfte erzeugt keine kaputte Ausgabe
Text kann die Hälfte eines Surrogatpaars enthalten: eine an falscher Stelle geschnittene Zeichenkette, ein abgeschnittenes Feld aus einer Datenbank. Die Ausgabe escapt sie als \ud800, statt sie roh auszugeben.
Das zählt, weil eine rohe einzelne Surrogathälfte in UTF-8 überhaupt nicht kodierbar ist. Escapt bleibt das JSON gültig, bleibt UTF-8, und das beschädigte Zeichen ist in der Ausgabe sichtbar, statt die Datei zu beschädigen, die sie trägt.
Was nicht escapt wird
Der Schrägstrich. \/ ist zulässiges JSON, und manche Kodierer geben ihn aus, damit </script> nie in der Ausgabe auftaucht, aber vorgeschrieben ist er nicht und er macht das Ergebnis schlechter lesbar.
Wenn Sie das Ergebnis in eine HTML-Seite einbetten, behandeln Sie </script> auf HTML-Ebene: ein HTML-Parser schließt das Element bei dieser Sequenz, wo immer sie auftaucht, und kein JSON-Escaping ändert daran etwas.
Datenschutz ab Werk
Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.