Codificatore di entità HTML gratuito — Escape HTML
Codifica le entità HTML e fai l'escape dei caratteri speciali (< > & " ') online — gratis, senza registrazione, 100% nel browser. Output con nome, decimale o esadecimale; mai caricato.
Il tuo testo viene codificato localmente nel tuo browser e non viene mai caricato, registrato o memorizzato. Resta su questo dispositivo.
Opzioni · Opzioni di formato e codifica
Cos'è la codifica delle entità HTML?
La codifica delle entità HTML — chiamata anche escape HTML — è il processo di sostituzione dei caratteri che hanno un significato speciale in HTML con una rappresentazione testuale sicura chiamata entità, così che il browser li mostri come testo letterale anziché interpretarli come markup. I cinque caratteri che contano di più sono quelli che l'HTML usa per strutturare un documento: le parentesi angolari < e > che aprono e chiudono i tag, la e commerciale & che inizia un'entità e le virgolette " e ' che delimitano i valori degli attributi. Quando uno di questi appare in un contenuto che va mostrato anziché eseguito, deve essere sottoposto a escape, altrimenti il browser leggerà male la pagina — nel migliore dei casi il testo viene reso in modo errato, nel peggiore un attaccante inserisce un tag <script>.
È utile essere precisi su cosa fa questo strumento. Codifica il testo in entità; non assembla né formatta un documento. Se vuoi leggere una stringa di codice in una pagina come testo semplice, o stai inserendo input fornito dall'utente nel tuo HTML e devi neutralizzarlo, questo è lo strumento giusto. Se invece vuoi indentare e riordinare del markup esistente, quello è il compito del Formattatore HTML; e per riconvertire le entità in caratteri, usa il Decodificatore di entità HTML.
Ci sono tre modi per scrivere qualsiasi entità, e sono interscambiabili. Un riferimento con nome usa un'etichetta facile da ricordare (< per <, © per ©); un riferimento numerico decimale scrive il code point Unicode del carattere in base 10 (< per <); e un riferimento esadecimale scrive lo stesso code point in base 16 (< per <), corrispondente alla notazione U+XXXX dello standard Unicode. Le entità con nome si leggono meglio ma esistono solo per i caratteri che hanno un nome definito; le entità numeriche possono rappresentare qualsiasi code point, ed è per questo che sono il ripiego sicuro. La tabella sotto elenca le entità a cui ricorrerai più spesso:
| Carattere | Con nome | Decimale | Esadecimale | |-----------|-------|---------|-----| | < | < | < | < | | > | > | > | > | | & | & | & | & | | " | " | " | " | | ' | ' | ' | ' | | (spazio) | |   |   | | © | © | © | © | | ® | ® | ® | ® | | ™ | ™ | ™ | ™ | | € | € | € | € | | £ | £ | £ | £ | | — | — | — | — | | – | – | – | – | | … | … | … | … | | é | é | é | é |
Nota che l'apostrofo è scritto ' (o ') anziché ': l'entità con nome ' è stata standardizzata solo in HTML5 e XML ed è insicura nei parser HTML4 più vecchi, quindi la forma numerica — compresa ovunque — è la scelta compatibile. Questo strumento segue la stessa convenzione della diffusa libreria he, motivo per cui l'output predefinito per ' è '.
La distinzione tra un set di caratteri e un'entità vale la pena di tenerla a mente, perché spiega l'opzione "Codifica tutti i non ASCII". Un charset (come UTF-8) determina come i caratteri sono memorizzati come byte; un'entità è un modo di scrivere un carattere usando solo i caratteri ASCII semplici & # ; e lettere o cifre. Su una pagina UTF-8 moderna, é, — e 😀 sono caratteri grezzi validi e non hanno bisogno di alcuna entità — ed è per questo che la modalità predefinita li lascia stare. Li forzi in entità solo quando il testo deve passare attraverso un sistema che non può gestire l'UTF-8 grezzo, nel qual caso ogni code point non ASCII viene riscritto come riferimento numerico o con nome ASCII-safe. E poiché tutto questo gira nel tuo browser, il markup di cui fai l'escape — anche un template privato o una bozza non pubblicata — non attraversa mai la rete. Per conversioni correlate, gli strumenti Escape JSON e Codifica / Decodifica Base64 gestiscono rispettivamente l'escape per le stringhe JavaScript e il trasporto binary-safe.
// Server-side templates auto-escape, but when you build HTML by hand you must escape yourself.
// The five reserved characters and their safe entities:
// < → < > → > & → & " → " ' → '
// Node.js — escape untrusted input before inserting it into HTML element content.
function escapeHtml(str) {
return str
.replace(/&/g, '&') // & first, so later entities are not double-escaped
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, '''); // numeric form — safe in HTML4, HTML5 and XML
}
const userInput = `<a href="x">Tom & Jerry's</a>`;
const safe = escapeHtml(userInput);
// → <a href="x">Tom & Jerry's</a>
document.getElementById('out').innerHTML = `<p>${safe}</p>`; // renders as literal text
// ---------------------------------------------------------------
// In practice, prefer the platform's built-in escaping where it exists:
// - React / Vue / Angular escape interpolated text by default
// - Use textContent instead of innerHTML when you only need text:
// el.textContent = userInput; // the browser escapes for you
// - Server frameworks (Jinja, ERB, Blade) auto-escape unless you opt out Funzionalità principali
Fa l'escape dei cinque caratteri riservati correttamente
< > & " ' vengono convertiti nelle loro entità sicure esattamente come farebbe una libreria robusta per la prevenzione dell'XSS — incluso il compatibile ' per l'apostrofo anziché l'' non sicuro in HTML4. Questo è l'insieme preciso che neutralizza l'input non attendibile nei contesti di elemento e attributo HTML.
Output con nome, decimale ed esadecimale
Ottieni gli stessi caratteri come entità con nome leggibili (<, ©), riferimenti numerici decimali (<) o riferimenti esadecimali (<). Scegli la forma che si aspetta il tuo sistema ricevente; tutte e tre si risolvono in caratteri identici una volta analizzate.
Modalità facoltativa Codifica-tutti-i-non-ASCII
Per impostazione predefinita vengono sottoposti a escape solo i caratteri riservati, mantenendo accenti ed emoji come UTF-8 grezzo leggibile. Spunta una casella per convertire ogni code point superiore a 0x7F in un'entità ASCII-safe per charset legacy o sistemi che corrompono l'UTF-8.
Codifica live e istantanea
L'output si aggiorna mentre digiti — nessun pulsante di invio, nessuna latenza di andata e ritorno. Incolla un grande blocco di markup e il risultato con escape appare immediatamente, pronto da copiare.
Tabella di riferimento rapido integrata
Una tabella di riferimento delle entità più comuni — i cinque riservati più ©, ®, ™, €, —, e altre — sta proprio nella pagina in forma con nome, decimale ed esadecimale, così non devi mai cercare un'entità altrove.
Passaggio al decodificatore con un clic
Inverti direzione passa direttamente al Decodificatore di entità HTML per invertire l'operazione. Codifica e decodifica sono esatti inversi, quindi puoi far compiere al testo un ciclo completo senza perdita.
100% privato, solo nel browser
Tutta la codifica avviene sul tuo dispositivo con JavaScript — nessuna richiesta di rete, nessun log, nessuna memorizzazione, verificabile in DevTools → Network. Markup privato, template di email e bozze non pubblicate non lasciano mai la scheda.
Disponibile in 15 lingue
L'intera interfaccia — etichette, istruzioni e indicazioni — è localizzata in 15 lingue, così lo strumento e i suoi consigli sull'escape sono chiari ovunque lavori il tuo team.
Esempi pratici
Escape di uno snippet HTML (la modalità predefinita "caratteri speciali")
<a href="x">Tom & Jerry's</a>
<a href="x">Tom & Jerry's</a>
Nella modalità predefinita "caratteri speciali" il codificatore riscrive solo i cinque caratteri che hanno un significato nel markup HTML: < diventa <, > diventa >, & diventa &, " diventa " e ' diventa '. L'apostrofo viene emesso come la forma numerica ' anziché come l'entità con nome ', perché ' non è definita in HTML4 e i parser più vecchi possono andare in errore, mentre la forma esadecimale è compresa ovunque. Dopo la codifica, il browser mostra la stringa come testo letterale — il tag <a> viene visualizzato, non cliccato — che è esattamente il modo sicuro per mostrare del markup all'interno di una pagina.
I caratteri non ASCII vengono preservati nella modalità predefinita
Visit our café — it's 😀
Visit our café — it's 😀
La modalità "caratteri speciali" tocca solo i cinque caratteri HTML riservati, quindi le lettere accentate (café), il trattino lungo (—) e le emoji (😀) passano inalterate. Questo mantiene l'output leggibile e leggero in byte, che è ciò che serve per le pagine UTF-8 che già dichiarano <meta charset="utf-8">. Viene sottoposto a escape solo l'apostrofo in "it's", in '. Se hai bisogno di convertire in entità ogni carattere non ASCII per un charset legacy, spunta "Codifica tutti i non ASCII" — vedi l'esempio sotto.
Entità numeriche decimali
<>&"'
<>&"'
Imposta il formato su Decimale e ogni carattere speciale viene scritto come riferimento numerico decimale: < è <, > è >, & è &, " è " e ' è '. Le entità decimali sono la forma numerica più ampiamente compatibile — ogni parser HTML e XML conforme le comprende — il che le rende una scelta sicura quando non puoi essere certo che entità con nome come © siano supportate dal sistema ricevente.
Entità numeriche esadecimali
<>&"'
<>&"'
Il formato Esadecimale scrive ogni carattere come riferimento numerico esadecimale: < è <, > è >, & è &, " è " e ' è '. Esadecimale e decimale sono interscambiabili — entrambi fanno riferimento allo stesso code point Unicode — ma l'esadecimale corrisponde uno a uno alla notazione U+XXXX che vedi nello standard Unicode, quindi è la forma preferita da molti sviluppatori quando documentano o ragionano su code point specifici.
Codifica tutti i caratteri non ASCII
café
café (named) · café (decimal) · café (hex)
Spunta "Codifica tutti i caratteri non ASCII" e ogni code point superiore a 0x7F viene convertito in entità, non solo i cinque riservati. La é di café diventa l'entità con nome é, la decimale é o l'esadecimale é a seconda del formato scelto — tutte e tre fanno riferimento allo stesso carattere, U+00E9. Questa modalità è pensata per le pagine servite con un charset non Unicode, o per i sistemi che corrompono l'UTF-8 grezzo, dove forzare tutto in entità ASCII a 7 bit garantisce che il testo arrivi intatto.
Come usare il codificatore di entità HTML
- 1
Incolla il tuo HTML o testo
Inserisci nel riquadro di input il markup o il testo semplice di cui vuoi fare l'escape. L'output codificato si aggiorna in tempo reale mentre digiti — non c'è alcun pulsante di invio e niente viene inviato da nessuna parte.
- 2
Scegli il formato dell'entità
Con nome è l'impostazione predefinita leggibile (<, &, ©). Passa a Decimale (<) o Esadecimale (<) quando un sistema ricevente preferisce i riferimenti numerici o non puoi garantire che le entità con nome siano supportate.
- 3
Facoltativo: codifica tutti i non ASCII
Lascia questa opzione disattivata per le moderne pagine UTF-8, così accenti ed emoji restano caratteri grezzi leggibili. Spuntala solo quando il testo deve sopravvivere a un charset legacy a singolo byte, il che converte ogni carattere superiore a 0x7F in un'entità ASCII-safe.
- 4
Copia il risultato codificato
Clicca Copia per mettere la stringa con escape negli appunti, pronta da incollare in un template, una pagina di documentazione o un campo di database. Cancella reimposta entrambi i riquadri per lo snippet successivo.
- 5
Serve l'inverso? Inverti direzione
Usa Inverti direzione per passare al Decodificatore di entità HTML quando vuoi riconvertire le entità nei caratteri che rappresentano.
Errori comuni nella codifica HTML
Fatto l'escape della e commerciale per ultima, causando un doppio escape
Se sostituisci < e > prima di &, le entità appena create si vedono ri-sottoporre a escape la loro &, quindi < si trasforma in < e viene reso come testo letterale. Fai sempre l'escape di & per primo.
replace < and > first, then & → < becomes &lt;
escape & first, then the rest → < stays <
Usato ' per l'apostrofo in contesti legacy
' è indefinito in HTML4 e alcuni client di posta lo mostrano letteralmente. Usa il numerico ' o ', compreso da ogni parser, quando hai come bersaglio ambienti più vecchi o misti.
It's here → may render as It's here
It's here → renders as It's here
Codificato i dati due volte
Far passare di nuovo del testo già sottoposto a escape attraverso il codificatore lo codifica due volte: & diventa & e l'utente vede & invece di &. Fai l'escape esattamente una volta, al momento dell'output.
& encoded again → &amp; shows as &
& left as-is → renders as &
Usato l'escape HTML per un contesto URL o JavaScript
Le entità HTML non rendono sicuro un valore dentro un URL o uno script inline. Uno spazio in un URL ha bisogno di %20, e una stringa in JavaScript ha bisogno dell'escape JS/JSON. Adatta la codifica a dove finisce il valore.
href="/search?q=a&b c" → the space still breaks the URL
href="/search?q=a%26b%20c" → URL-encoded, valid
Codificato i non ASCII inutilmente su una pagina UTF-8
Forzare café in café su una moderna pagina UTF-8 gonfia il sorgente e ne danneggia la leggibilità senza alcun beneficio. Lascia i non ASCII grezzi a meno che un charset legacy non richieda davvero le entità.
café on a UTF-8 page → needless, harder to read
café on a UTF-8 page → valid and clean
Dimenticato di fare l'escape delle virgolette dentro un valore di attributo
Inserire una " non sottoposta a escape in un attributo permette al valore di uscire e iniettare nuovi attributi — un vettore XSS. Fai sempre l'escape di " (e idealmente di ') nel contesto di attributo, cosa che questo strumento fa per impostazione predefinita.
title="He said "hi"" → attribute breaks out
title="He said "hi"" → contained
Chi usa questo strumento
- Mostrare esempi di codice in una pagina web
- Stai scrivendo un tutorial o della documentazione che deve mostrare HTML letterale? Fai l'escape dello snippet così <strong>bold</strong> appare come testo anziché venire reso. Incolla il markup, copia l'output con escape e inseriscilo dentro un blocco <pre> o <code>.
- Ripulire l'input dell'utente contro l'XSS
- Prima di inserire qualsiasi stringa fornita dall'utente nel tuo HTML, fai l'escape dei cinque caratteri riservati così un payload come <script>…</script> diventa testo inerte. Questa è la difesa fondamentale contro il cross-site scripting quando costruisci il markup a mano.
- Memorizzare markup in un campo di database o JSON
- Devi salvare un frammento HTML come stringa semplice senza che venga interpretato a valle? Codificalo prima, così le parentesi angolari e le e commerciali sopravvivono alla memorizzazione e alla ri-visualizzazione intatte, poi decodifica al ritorno.
- Creare template di email e contenuti CMS
- I client di posta e i sistemi di gestione dei contenuti sono inflessibili con i caratteri speciali grezzi. Fai l'escape dell'insieme riservato — e facoltativamente di tutti i non ASCII — così il tuo template viene reso in modo coerente tra client che potrebbero non condividere il tuo charset.
- Convertire testo per un charset legacy
- Hai come bersaglio un sistema che non può gestire l'UTF-8 grezzo? Attiva "Codifica tutti i non ASCII" per riscrivere ogni lettera accentata, simbolo ed emoji come entità ASCII-safe, garantendo che il testo sopravviva al trasporto attraverso pipeline a 7 bit puliti.
- Fare l'escape di valori di attributo XML e SVG
- XML e SVG inline condividono i caratteri riservati dell'HTML. Codifica virgolette e parentesi angolari così una stringa con markup incorporato si inserisce in sicurezza nel valore di un attributo senza rompere la struttura del documento.
- Cercare rapidamente un'entità
- Dimenticato se il simbolo del marchio è ™ o ™? Digita il carattere, leggi la sua entità con nome, decimale ed esadecimale dall'output, oppure consulta la tabella di riferimento rapido integrata senza lasciare la pagina.
Come funziona il codificatore
- Modalità caratteri speciali (predefinita)
- Per impostazione predefinita vengono sottoposti a escape solo i cinque caratteri HTML riservati — & < > " ' — seguendo le regole di serializzazione HTML del WHATWG per un output sicuro. & viene sostituito per primo così che le entità prodotte per gli altri caratteri non vengano sottoposte a doppio escape. Tutti gli altri caratteri, inclusi i non ASCII, passano inalterati.
- L'apostrofo usa '
- Anziché l'' con nome — che è indefinito in HTML4 e insicuro in alcuni parser legacy — l'apice singolo viene emesso come il numerico ' (decimale '), facendo riferimento a U+0027. Questo corrisponde alla convenzione di librerie ben collaudate come he e garantisce che l'output sia sicuro in HTML4, HTML5 e XML allo stesso modo.
- Codifica con nome, decimale ed esadecimale
- Il selettore di formato controlla come viene scritto ogni carattere sottoposto a escape: Con nome usa etichette definite dove esistono (<, ©), Decimale scrive il code point Unicode in base 10 (<) ed Esadecimale lo scrive in base 16 (<). Le forme numeriche fanno riferimento agli stessi code point delle forme con nome e sono interscambiabili una volta analizzate.
- Opzione Codifica-tutti-i-non-ASCII
- Quando abilitata, ogni carattere con code point superiore a 0x7F viene convertito in un'entità nel formato scelto — café diventa café (con nome), café (decimale) o café (esadecimale). I caratteri astrali come le emoji sono codificati con il loro code point completo (😀 → 😀). Questo produce un output ASCII a 7 bit puliti per il trasporto legacy.
- Charset rispetto a entità
- Un set di caratteri definisce come il testo è memorizzato come byte; un'entità è un modo di scrivere un carattere usando solo ASCII. Su una pagina UTF-8 i caratteri non ASCII non hanno bisogno di alcuna entità, ed è per questo che l'impostazione predefinita li lascia grezzi. Codificare tutto è necessario solo quando l'output deve attraversare un charset non Unicode o un sistema ostile all'UTF-8.
- Locale nel browser, zero rete
- La codifica gira in modo sincrono in JavaScript sul thread principale; non c'è alcuna chiamata API, nessun andata e ritorno a un server tramite worker e nessuna persistenza. L'input non lascia mai la pagina, cosa che puoi confermare osservando un pannello Network vuoto mentre digiti.
Buone pratiche per l'escape HTML
- Fai l'escape all'output, nel contesto giusto
- Codifica i dati nel momento in cui li inserisci nell'HTML, non quando li ricevi, e adatta la codifica al contesto. La codifica delle entità HTML è per il contenuto di elementi e attributi HTML; usa la codifica URL dentro gli URL e l'escape JavaScript/JSON dentro i blocchi di script. Fare l'escape nel contesto sbagliato lascia un buco.
- Fai sempre l'escape dell'input non attendibile
- Qualsiasi stringa che provenga da un utente, da un upload o da un'API esterna va sottoposta a escape prima di finire nel tuo markup. Questa è la difesa fondamentale contro l'XSS: un payload come <script>alert(1)</script> diventa testo inerte una volta che le parentesi angolari sono entità.
- Preferisci l'escape integrato dove esiste
- React, Vue e la maggior parte dei motori di templating lato server fanno l'escape del testo interpolato automaticamente; anche impostare element.textContent fa l'escape per te. Usa questo strumento per conversioni occasionali e per capire l'output — ma nel codice applicativo affidati all'auto-escape del framework anziché farlo a mano.
- Lascia i non ASCII grezzi sulle pagine UTF-8
- Se la tua pagina dichiara <meta charset="utf-8">, non codificare accenti ed emoji in entità — l'UTF-8 grezzo è più breve, più leggibile e altrettanto corretto. Riserva "Codifica tutti i non ASCII" ai genuini casi di charset legacy che lo richiedono davvero.
- Usa l'apostrofo numerico in contesti misti
- Quando l'output può essere consumato da parser più vecchi, processori XML o client di posta, preferisci il numerico ' all'' con nome per l'apice singolo. La forma numerica è compresa ovunque; quella con nome no, e un "'" letterale errante nel testo reso è un bug comune ed evitabile.
Domande frequenti
Il mio testo viene inviato al vostro server quando lo codifico?
Cosa significa fare l'escape dell'HTML e perché dovrei farlo?
Qual è la differenza tra entità con nome, decimali ed esadecimali?
Perché l'apostrofo è codificato come ' e non come '?
Devo codificare i caratteri non ASCII come é, — o 😀?
Fare l'escape dell'HTML mi protegge dagli attacchi XSS?
Come faccio l'inverso — riconvertire le entità in caratteri?
La codifica cambierà il testo visibile o romperà il mio layout?
Strumenti correlati
Vedi tutti gli strumenti →Decodificatore e codificatore Base64
Codifica e formattazione
Decodifica e codifica Base64 online gratis. Conversione in tempo reale con pieno supporto UTF-8 ed emoji. 100% privato — gira nel tuo browser. Nessuna registrazione.
Convertitore da Base64 a immagine
Codifica e formattazione
Decodifica una stringa Base64 o un data URI in un'immagine nel tuo browser. Anteprima, dimensioni e MIME, poi scarica come PNG, JPG, GIF, SVG. Nessun upload.
Convertitore CSV in JSON
Codifica e formattazione
Converti CSV in JSON nel browser. RFC 4180, inferenza tipi, riga header, sicuro per big-int. 100% privato, nessun upload.
Convertitore da .env a JSON
Codifica e formattazione
Incolla un file .env online e ottieni subito il JSON. Password, chiavi API e token non lasciano mai il browser: parser dotenv web, 100% privato, senza upload.
Decodificatore di entità HTML gratuito — Unescape HTML
Codifica e formattazione
Decodifica le entità HTML e fai l'unescape dell'HTML online — gratis, senza registrazione, 100% nel browser. Riconverte riferimenti con nome, decimali ed esadecimali in caratteri; mai caricato.
Convertitore da HTML a Markdown
Codifica e formattazione
Converti HTML in Markdown pulito nel tuo browser — tabelle GFM, elenchi di attività e link. Scegli titoli ATX/Setext e link inline o di riferimento. Ottimo per migrare contenuti o alimentare gli LLM. 100% privato.