Che cosa fa questo strumento
Il tuo testo diventa un letterale di stringa JSON: virgolette attorno e ogni carattere che non può stare grezzo sostituito dalla sua forma protetta.
"diventa\", una barra rovesciata diventa\\;- un ritorno a capo diventa
\n, una tabulazione\t, un ritorno carrello\r; - gli altri caratteri di controllo diventano
\u00XX.
é e 😀 restano come sono. JSON è Unicode, e una stringa leggibile vale più di un muro di escape.
Due caratteri che i codificatori comuni lasciano grezzi
U+2028 (separatore di riga) e U+2029 (separatore di paragrafo) escono come \u2028 e \u2029. Un codificatore JSON standard li lascia letterali.
Entrambe le scritture sono JSON valido. Quella protetta è più sicura, per una ragione storica ancora viva: in JavaScript prima di ES2019 quei due caratteri erano terminatori di riga, quindi un letterale di stringa che ne contenesse uno grezzo era un errore di sintassi. Tutto ciò che prende JSON e lo valuta come JavaScript — un vecchio eval, un endpoint JSONP, un bundler che incorpora un file di dati — ci inciampa. Proteggerli costa tre caratteri e rimuove l’intera classe di guasti.
Una metà surrogata isolata non produce un’uscita rotta
Un testo può contenere metà di una coppia surrogata: una stringa tagliata all’indice sbagliato, un campo troncato uscito da un database. L’uscita la protegge come \ud800 invece di emetterla grezza.
Conta perché una metà surrogata grezza non è codificabile in UTF-8 affatto. Protetta, il JSON resta valido, resta UTF-8, e il carattere danneggiato è visibile nell’uscita anziché corrompere il file che la trasporta.
Che cosa non viene protetto
La barra obliqua. \/ è JSON legittimo, e alcuni codificatori la emettono perché </script> non compaia mai nell’uscita, ma non è richiesta e rende il risultato meno leggibile.
Se incorpori il risultato in una pagina HTML, tratta </script> a livello HTML: un parser HTML chiude l’elemento a quella sequenza ovunque compaia, e nessun escape JSON lo cambia.
Privato per progettazione
Tutto viene eseguito localmente nel browser con JavaScript. I tuoi dati non vengono mai caricati, quindi lo strumento è sicuro per contenuti sensibili e funziona anche offline.