Escape/unescape di stringhe
Esegui l'escape o l'unescape di una stringa per JSON, JavaScript, template literal, SQL, CSV, attributi HTML, regex e URL, direttamente nel browser.
L'escape non sostituisce le query parametrizzate (prepared statement). Usa questo risultato per leggere o fare il debug di SQL, mai per costruire query a partire dall'input degli utenti.
Come fare l’escape o l’unescape di una stringa
- Scegli il formato di destinazione in Formato: stringa JSON, stringa JavaScript, template literal JavaScript, stringa letterale SQL, campo CSV, valore di attributo HTML, espressione regolare o componente URL.
- Scrivi o incolla il testo nella casella di input.
- Premi Escape per trasformare il testo semplice in un letterale sicuro, oppure Unescape per riportare un letterale a testo semplice. Il risultato si aggiorna mentre scrivi, nella direzione che hai scelto per ultima.
- Regola le opzioni mostrate per il formato: Aggiungi virgolette di apertura e chiusura, Escape dei caratteri non ASCII o Spazi come + (dati di form).
- Premi Copia, oppure Usa il risultato come input per invertire l’operazione e verificare il percorso di andata e ritorno.
Il numero di caratteri prima e dopo compare sotto i pulsanti. Tutto avviene nel tuo browser; non viene caricato nulla.
Cosa fa ogni formato
- Stringa JSON: esegue l’escape di
",\e dei caratteri di controllo (\n,\t,\u0000…), esattamente comeJSON.stringify. Con Escape dei caratteri non ASCII, ogni carattere oltre U+007E diventa\uXXXX(le lettere accentate comeèdiventanoè, le emoji una coppia di surrogati come😀). L’unescape accetta il testo con o senza le virgolette doppie e tollera gli a capo grezzi. - Stringa JavaScript (‘…’): esegue l’escape del backslash, dell’apice singolo, degli a capo e dei caratteri di controllo, oltre a U+2028 e U+2029, che mandano in crisi i motori più vecchi. L’unescape comprende
\x41,A,\u{1F600}, le vecchie sequenze ottali come\101e le continuazioni di riga. - Template literal JavaScript (`…`): esegue l’escape di backtick, backslash e
${, così nessuna espressione viene valutata; a capo e tabulazioni restano invariati, perché i template literal li ammettono. - Stringa letterale SQL (‘…’): raddoppia gli apici singoli (
L'Aquila→'L''Aquila'), come nell’SQL standard. L’unescape rifiuta un apice non raddoppiato. I backslash non vengono toccati: MySQL, nella modalità predefinita, tratta anche\come carattere di escape, quindi controlla le regole del tuo database. - Campo CSV (RFC 4180): racchiude il campo tra virgolette doppie e raddoppia le virgolette interne quando contiene una virgola, un punto e virgola, una tabulazione, una virgoletta, un a capo o uno spazio iniziale/finale. Aggiungi virgolette di apertura e chiusura forza le virgolette.
- Valore di attributo HTML: sostituisce
&,<,>,"e'con entità, il che è sicuro sia negli attributi tra apici singoli sia in quelli tra virgolette doppie. L’unescape decodifica i riferimenti numerici e&,<,>,",'e . - Espressione regolare (testo letterale): aggiunge un backslash davanti a
. * + ? ^ $ { } ( ) | [ ] \ /, oltre ad a capo e tabulazioni, così il pattern riconosce il testo alla lettera. Il risultato è valido con o senza il flagu. - Componente URL (percent-encoding): funziona come
encodeURIComponente codifica come byte UTF-8 tutto tranne lettere, cifre e- _ . ! ~ * ' ( ). Spazi come + (dati di form) usa la convenzioneapplication/x-www-form-urlencoded.
Per SQL l’escape non è una barriera di sicurezza
Quando scegli SQL, lo strumento mostra un promemoria che vale la pena ripetere: la vera soluzione contro la SQL injection è una query parametrizzata (prepared statement), in cui il valore viene inviato separatamente dal testo SQL. L’escape manuale è fragile: dipende dal database, dal set di caratteri della connessione e da impostazioni come la gestione dei backslash di MySQL. Usa questo risultato per leggere log, scrivere fixture o fare il debug di una query, mai per costruire query a partire dall’input degli utenti.
Per il CSV, lo strumento avvisa anche quando un valore inizia con =, +, - o @: un foglio di calcolo potrebbe eseguirlo come formula (CSV injection). Le virgolette non lo impediscono; anteporre al valore un apostrofo o uno spazio è la contromisura abituale.
Domande frequenti
Che differenza c'è tra una stringa JSON e una stringa JavaScript?
JSON ammette solo le virgolette doppie e un piccolo insieme di escape (\" \\ \/ \b \f \n \r \t \uXXXX). JavaScript accetta anche apici singoli, backtick, \x41, \u{…}, \v e \0. Gli escape JSON validi sono JavaScript valido, ma non il contrario.
Perché l'unescape fallisce con "sequenza di escape non valida"?
Il testo contiene un backslash seguito da qualcosa che il formato non ammette, come \u12 con meno di quattro cifre esadecimali, oppure un backslash isolato alla fine. Il messaggio di errore mostra la sequenza difettosa.
Nel CSV servono le virgolette intorno a ogni campo?
No. La RFC 4180 richiede le virgolette solo quando il campo contiene una virgola, una virgoletta doppia o un a capo. Questo strumento mette tra virgolette anche punti e virgola, tabulazioni e spazi iniziali o finali, perché molti fogli di calcolo (Excel in italiano compreso) usano il punto e virgola come separatore o eliminano gli spazi.
L'escape per attributi HTML basta a prevenire l'XSS?
È corretto per il testo inserito in un valore di attributo tra virgolette. Non basta per gli attributi che sono a loro volta codice o URL, come onclick o href="javascript:…": lì serve una validazione, non solo l’escape.
Il mio testo viene inviato a un server?
No. Tutte le conversioni avvengono in locale nel tuo browser, quindi puoi incollare senza timori valori di configurazione o dati che non condivideresti.
Strumenti correlati
- Codifica e decodifica URL Codificatore e decodificatore URL gratuito. Codifica parametri o URL completi, decodifica le sequenze %XX e gestisci + come spazio, tutto nel browser.
- Codifica e decodifica entità HTML Converti i caratteri speciali in entità HTML (con nome, decimali o esadecimali) o decodifica qualsiasi entità, con l'elenco completo dei 2231 nomi HTML5.
- Formattatore e validatore JSON Formattatore e validatore JSON gratuito che formatta, minifica e controlla il JSON nel browser, con gli errori di sintassi indicati per riga e colonna.
- Tester di regex Testa le espressioni regolari JavaScript in tempo reale con corrispondenze evidenziate, gruppi di cattura, sostituzione e spiegazione di ogni token.