Skip to content

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.

Niente tracciamento Funziona nel browser Gratuito

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
Formato entità
0 caratteri
HTML codificato
0 caratteri
Verificato per la correttezza della specifica di codifica delle entità (con nome / decimale / esadecimale), l'escape XSS-safe di tutti e cinque i caratteri speciali nei contesti HTML e di attributo, la convenzione dell'apostrofo compatibile ', la privacy senza rete/senza memorizzazione dell'input e l'accessibilità (controlli etichettati, annunci live-region su codifica e copia). — Go Tools Encoding Team · Jun 17, 2026

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 | |-----------|-------|---------|-----| | < | &lt; | &#60; | &#x3C; | | > | &gt; | &#62; | &#x3E; | | & | &amp; | &#38; | &#x26; | | " | &quot; | &#34; | &#x22; | | ' | &#x27; | &#39; | &#x27; | | (spazio) | &nbsp; | &#160; | &#xA0; | | © | &copy; | &#169; | &#xA9; | | ® | &reg; | &#174; | &#xAE; | | ™ | &trade; | &#8482; | &#x2122; | | € | &euro; | &#8364; | &#x20AC; | | £ | &pound; | &#163; | &#xA3; | | — | &mdash; | &#8212; | &#x2014; | | – | &ndash; | &#8211; | &#x2013; | | … | &hellip; | &#8230; | &#x2026; | | é | &eacute; | &#233; | &#xE9; |

Nota che l'apostrofo è scritto ' (o ') anziché &apos;: l'entità con nome &apos; è 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:
//   <  →  &lt;     >  →  &gt;     &  →  &amp;     "  →  &quot;     '  →  &#x27;

// Node.js — escape untrusted input before inserting it into HTML element content.
function escapeHtml(str) {
  return str
    .replace(/&/g, '&amp;')   // & first, so later entities are not double-escaped
    .replace(/</g, '&lt;')
    .replace(/>/g, '&gt;')
    .replace(/"/g, '&quot;')
    .replace(/'/g, '&#x27;'); // numeric form — safe in HTML4, HTML5 and XML
}

const userInput = `<a href="x">Tom & Jerry's</a>`;
const safe = escapeHtml(userInput);
// → &lt;a href=&quot;x&quot;&gt;Tom &amp; Jerry&#x27;s&lt;/a&gt;
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'&apos; 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>
&lt;a href=&quot;x&quot;&gt;Tom &amp; Jerry&#x27;s&lt;/a&gt;

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 &apos;, perché &apos; 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&#x27;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

<>&"'
&#60;&#62;&#38;&#34;&#39;

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 &copy; siano supportate dal sistema ricevente.

Entità numeriche esadecimali

<>&"'
&#x3C;&#x3E;&#x26;&#x22;&#x27;

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&eacute;  (named)  ·  caf&#233;  (decimal)  ·  caf&#xE9;  (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. 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. 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. 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. 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. 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 &lt; e viene reso come testo letterale. Fai sempre l'escape di & per primo.

✗ Errato
replace < and > first, then &  →  &lt;  becomes  &amp;lt;
✓ Corretto
escape & first, then the rest  →  &lt;  stays  &lt;

Usato ' per l'apostrofo in contesti legacy

&apos; è 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.

✗ Errato
It&apos;s here  →  may render as  It&apos;s here
✓ Corretto
It&#x27;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 &amp; e l'utente vede & invece di &. Fai l'escape esattamente una volta, al momento dell'output.

✗ Errato
&amp;  encoded again  →  &amp;amp;  shows as  &amp;
✓ Corretto
&amp;  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.

✗ Errato
href="/search?q=a&amp;b c"  →  the space still breaks the URL
✓ Corretto
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à.

✗ Errato
caf&eacute; on a UTF-8 page  →  needless, harder to read
✓ Corretto
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.

✗ Errato
title="He said "hi""  →  attribute breaks out
✓ Corretto
title="He said &quot;hi&quot;"  →  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'&apos; 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'&apos; con nome per l'apice singolo. La forma numerica è compresa ovunque; quella con nome no, e un "&apos;" letterale errante nel testo reso è un bug comune ed evitabile.

Domande frequenti

Il mio testo viene inviato al vostro server quando lo codifico?
No. Ogni carattere viene codificato interamente nel tuo browser con JavaScript — apri DevTools → Network e vedrai zero richieste partire quando digiti o incolli. Niente viene caricato, niente viene registrato, niente viene scritto su disco. Questa privacy è importante perché il markup di cui le persone fanno l'escape è spesso sensibile: uno snippet di un CMS privato, un template di email interno, una risposta dell'assistenza clienti o una bozza di articolo non ancora pubblicata. Su un codificatore lato server ognuno di questi viaggerebbe attraverso la rete fino a una macchina che non controlli; qui il testo non lascia mai la scheda. Questo è il motivo per cui conviene fare l'escape dell'HTML lato client anziché incollarlo in un sito che, in linea di principio, potrebbe conservare una copia di tutto ciò che elabora.
Cosa significa fare l'escape dell'HTML e perché dovrei farlo?
Fare l'escape dell'HTML significa sostituire i caratteri che il browser interpreterebbe altrimenti come markup con le loro entità equivalenti, così da mostrarli come testo letterale. Il caso classico è mostrare del codice in una pagina: se vuoi che un visitatore legga la stringa <strong>bold</strong> anziché vedere la parola "bold" resa in grassetto, fai l'escape delle parentesi angolari in <strong>bold</strong>. L'altro caso, più importante, è la sicurezza: quando inserisci input non attendibile in una pagina, fare l'escape dei cinque caratteri riservati (< > & " ') impedisce a quell'input di uscire dal proprio contesto e iniettare un tag <script> — la difesa fondamentale contro il cross-site scripting (XSS). Qualsiasi testo che provenga da un utente e finisca nel tuo HTML va sottoposto a escape per primo.
Qual è la differenza tra entità con nome, decimali ed esadecimali?
Tutte e tre producono lo stesso carattere; differiscono solo nel modo in cui il riferimento è scritto. Un'entità con nome usa un'etichetta leggibile — < per <, & per &, © per © — facile da leggere ma valida solo per i caratteri che hanno un nome definito. Un'entità numerica decimale scrive il code point Unicode in base 10, come < per < o é per é. Un'entità esadecimale scrive lo stesso code point in base 16, come < per < o é per é, rispecchiando la notazione U+XXXX dello standard Unicode. Le entità con nome sono le più leggibili e sono la scelta giusta come impostazione predefinita per i comuni caratteri riservati; le entità numeriche (decimali o esadecimali) possono codificare qualsiasi code point, inclusi quelli senza nome, il che le rende la scelta sicura quando non puoi garantire che il ricevente supporti una particolare entità con nome.
Perché l'apostrofo è codificato come ' e non come &apos;?
Perché &apos; non è sicura ovunque. L'entità con nome &apos; è stata introdotta solo in HTML5 e XML — non è definita in HTML4, quindi alcuni parser e client di posta più vecchi la mostrano come il testo letterale "&apos;" anziché come un apostrofo. Il riferimento numerico ' (o il suo gemello decimale ') corrisponde allo stesso identico carattere, U+0027, ed è compreso da ogni parser conforme mai scritto. Seguendo il comportamento di librerie ben collaudate come he, questo strumento emette l'universalmente compatibile ' per l'apostrofo, così che l'output sia sicuro da inserire in qualsiasi contesto HTML, XML o di attributo senza sorprese.
Devo codificare i caratteri non ASCII come é, — o 😀?
Di solito no. Se la tua pagina dichiara <meta charset="utf-8"> — cosa che fa praticamente ogni pagina moderna — allora lettere accentate, trattini lunghi ed emoji sono perfettamente validi come UTF-8 grezzo e non hanno bisogno di alcuna codifica. Per questo la modalità predefinita "caratteri speciali" li lascia intatti, mantenendo l'output breve e leggibile. Devi codificare i caratteri non ASCII solo quando il testo sarà servito o memorizzato in un charset legacy a singolo byte, o passato attraverso un sistema che corrompe l'UTF-8 grezzo. In questi casi spunta "Codifica tutti i caratteri non ASCII" e ogni code point superiore a 0x7F viene convertito in un'entità ASCII-safe. Nel dubbio, mantieni l'impostazione predefinita e assicurati che la dichiarazione del charset sia corretta.
Fare l'escape dell'HTML mi protegge dagli attacchi XSS?
L'escape è il fondamento della difesa contro l'XSS, ma dipende dal contesto, quindi la risposta onesta è "sì, se applicato correttamente." Codificare i cinque caratteri riservati prima di inserire input non attendibile nel contenuto di un elemento HTML impedisce in modo affidabile a un attaccante di iniettare tag o script — un payload come <script>alert(1)</script> diventa testo inerte. L'avvertenza è che l'HTML ha diversi contesti, ciascuno con le proprie regole di escape: dentro il valore di un attributo devi fare l'escape delle virgolette (cosa che questo strumento fa), dentro un blocco <script> o un gestore di eventi inline ti serve invece l'escape JavaScript, e dentro un URL ti serve la codifica URL. Usa la codifica delle entità HTML per i contesti HTML e di attributo; per gli URL ricorri al Codificatore / Decodificatore URL, e per incorporare una stringa in JavaScript o JSON consulta lo strumento Escape JSON. Codifica al momento dell'output, nel contesto in cui i dati finiscono.
Come faccio l'inverso — riconvertire le entità in caratteri?
Usa il Decodificatore di entità HTML complementare. Prende una stringa piena di entità come <div> & © e la riconverte nei caratteri reali <div> & ©, gestendo entità con nome, riferimenti decimali, riferimenti esadecimali e persino entità legacy non terminate come &copy senza punto e virgola finale. Codifica e decodifica sono esatti inversi per i caratteri riservati, quindi puoi far compiere al testo un ciclo completo attraverso entrambi gli strumenti senza perdita. Se stai cercando di capire perché una pagina mostra il letterale &lt; invece di <, il decodificatore è il modo più rapido per vedere a cosa si risolvono effettivamente le entità.
La codifica cambierà il testo visibile o romperà il mio layout?
No — è proprio questo il punto. Un'entità è solo una grafia alternativa di un carattere: quando un browser analizza < rende un singolo glifo <, identico al carattere grezzo. Quindi una pagina correttamente sottoposta a escape appare a un visitatore esattamente come apparirebbe con i caratteri grezzi; l'unica differenza è che il browser tratta la versione con escape come testo anziché come markup. L'unica cosa che l'escape cambia è la lunghezza e l'aspetto della stringa sorgente, motivo per cui fai l'escape solo di ciò che va sottoposto a escape. Se il tuo obiettivo è ripulire e indentare del markup disordinato anziché farne l'escape, quello è un lavoro diverso — usa invece il Formattatore HTML.

Strumenti correlati

Vedi tutti gli strumenti →