PK Systems PK Systems
Strumenti di testo

Escape e Unescape di stringhe

Escape e unescape di stringhe per JavaScript, JSON, SQL, HTML, URL ed espressioni regolari — scegli un contesto e parti.

Escape e Unescape di stringhe

Output con escape

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
JavaScriptIt's "fine"It\'s \"fine\"
JSONline1\nline2line1\\nline2
SQLO'BrienO''Brien
HTML<b> & "x"&lt;b&gt; &amp; &quot;x&quot;
URLa b/c?d=1a%20b%2Fc%3Fd%3D1
Regex3.14 (pi)3\.14 \(pi\)

Domande frequenti

Perché ci sono modalità separate JavaScript e JSON?
JSON è un sottoinsieme stretto della sintassi delle stringhe JavaScript — non ammette \', \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?
No — per query reali in produzione, usa query parametrizzate (prepared statement) nel driver del database. L'escape SQL qui è per conversione leggibile dall'umano (es. costruire una query una tantum, trasformare un dump di dati). Il raddoppio delle virgolette singole è lo standard SQL, ma le app moderne dovrebbero passare i valori come parametri, non concatenarli.
Qual è la differenza tra encodeURIComponent e encodeURI?
La modalità URL usa l'encoding in stile component, che codifica in percent ?, &, =, / 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?
Entrambi. L'encoder escapa <, >, &, " 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?
Ogni carattere con significato speciale in un'espressione regolare JavaScript: \, ^, $, ., *, +, ?, (, ), [, ], {, }, |, /, -. Il risultato può essere usato dentro una regex per matchare la stringa originale letteralmente — comodo quando hai input dell'utente da cercare verbatim.
Qualcosa lascia il mio browser?
No. Sia escape che unescape girano come JavaScript puro nel tuo browser. Sicuro per credenziali, query interne, stringhe contenenti segreti — niente viene caricato, registrato o memorizzato.