Escape e Unescape di stringhe
Escape e unescape di stringhe per JavaScript, JSON, SQL, HTML, URL ed espressioni regolari — scegli un contesto e parti.
Cos'è l'escape di una stringa?
Ogni sintassi basata su testo — JSON, SQL, HTML, URL, regex — ha caratteri speciali che hanno un significato diverso da loro stessi. Inserire un ' non escapato in una stringa SQL può rompere una query (o esporti a injection). Un < non escapato in HTML disegna un tag. Un ? letterale in un URL diventa un separatore di query. L'escape è il processo di convertire questi caratteri in una forma sicura che il parser rileggerà come carattere originale. L'unescape è il contrario — riportare una stringa JSON o HTML alla sua forma semplice.
Come usare lo strumento di escape
Scegli un contesto che corrisponda alla sintassi su cui stai lavorando — JavaScript, JSON, SQL, HTML, componente URL o regex letterale. Scegli Escape per convertire il testo semplice in una forma sicura per quel contesto, o Unescape per fare il contrario. Incolla il tuo input. L'output si aggiorna live, con il conteggio caratteri per controllo. Ogni contesto usa precisamente le regole di quella sintassi: JS usa \n, \t, \"; SQL raddoppia le virgolette singole; HTML usa le entità; URL usa il percent-encoding.
Scegliere il contesto giusto
Se la stringa va incorporata dentro codice JavaScript, usa JavaScript. Se la metti in un valore JSON (es. un file di configurazione o un payload API), usa JSON — è più stretto del JS. HTML è la scelta giusta per contenuto che verrà renderizzato in pagina (sicuro anche per i valori degli attributi HTML). URL è per i singoli valori dei parametri di query, non per URL completi (che già contengono :// e ? come caratteri strutturali). Regex escapa una stringa letterale per uso dentro un'espressione regolare — utile quando devi cercare verbatim l'input dell'utente.
Esempi per contesto
| Contesto | Input | Output |
|---|---|---|
| JavaScript | It's "fine" | It\'s \"fine\" |
| JSON | line1\nline2 | line1\\nline2 |
| SQL | O'Brien | O''Brien |
| HTML | <b> & "x" | <b> & "x" |
| URL | a b/c?d=1 | a%20b%2Fc%3Fd%3D1 |
| Regex | 3.14 (pi) | 3\.14 \(pi\) |
Domande frequenti
Perché ci sono modalità separate JavaScript e JSON?
\', \v, \0, escape esadecimali (\xHH) o caratteri di controllo non racchiusi. JS è più permissivo. Se stai costruendo un documento JSON, usa JSON; se stai incorporando una stringa nel sorgente .js, usa JavaScript. Confonderli può produrre stringhe che fanno crashare un parser JSON.Devo usarlo per query SQL contro le SQL injection?
Qual è la differenza tra encodeURIComponent e encodeURI?
?, &, =, / e simili — cioè è sicuro da inserire in un valore di parametro di query. L'encoding di URL completi lascia stare quei caratteri perché hanno significato strutturale. Se stai codificando un valore che va dopo un = in un URL, è questa la modalità che ti serve.L'escape HTML produce output sicuro per attributi o per contenuto?
<, >, &, " e ' — un superset di ciò che è strettamente richiesto per entrambi i contesti, quindi il risultato è sicuro da inserire nel contenuto di un elemento o in qualsiasi attributo (sia con virgolette singole che doppie).Cosa escapa la modalità regex?
\, ^, $, ., *, +, ?, (, ), [, ], {, }, |, /, -. Il risultato può essere usato dentro una regex per matchare la stringa originale letteralmente — comodo quando hai input dell'utente da cercare verbatim.