Vai al contenuto

Codificatore di entità HTML

HTML Entity Encoder

Applica e toglie l’escape delle entità HTML, con uscita per nome, in decimale e in esadecimale.

Converte i caratteri in entità HTML e all’indietro — `&`, `&`, `&` — con una scelta su quanto fare l’escape. Nella decodifica si applica anche la rimappatura Windows-1252 che la specifica di parsing HTML richiede, ed è il motivo per cui `’` torna come un apostrofo tipografico anziché come un carattere di controllo.

🔒 Funziona interamente nel tuo browserhtmlentityescape
Regole
Direzione
Applica l’escape

Solo `&`, `<` e `>`. Fra due tag serve questo e niente di più.

Come

Testo

Codificato

I cinque che definisce XML

Le cinque entità XML predefinite.
CaratterePer nomeDecimaleEsadecimale
&&amp;&#38;&#x26;
<&lt;&#60;&#x3C;
>&gt;&#62;&#x3E;
"&quot;&#34;&#x22;
'&apos;&#39;&#x27;

Senza una DTD questi sono gli unici riferimenti per nome che l’XML ha. Tutto il resto in un documento XML deve essere numerico.

Come si usa

  1. Decidere quanto fare l’escape

    Contenuto testuale fa l’escape solo di `&`, `<` e `>`: tutto quello che serve fra due tag. Valore di attributo aggiunge i due caratteri di virgoletta. Tutto il non-ASCII è per una catena che non sa trasportare UTF-8, e trasforma ogni «à» in sei caratteri come `&#224;`.

  2. Scegliere la notazione

    Con nome (`&amp;`) si legge meglio; decimale ed esadecimale sono numeriche e funzionano in XML, che senza una DTD ha solo cinque riferimenti con nome.

  3. Oppure andare nell’altra direzione

    Basta passare a Unescape e incollare del testo pieno di entità. Tutto quello che la tabella non riconosce viene elencato e lasciato esattamente com’è scritto invece di essere tolto.

Domande frequenti

Perché una delle mie entità è stata lasciata com’era scritta?

HTML5 definisce 2.231 riferimenti con nome, e la tabella qui ne porta un sottoinsieme scelto: ogni carattere Latin-1, la punteggiatura, il greco, le frecce e i simboli matematici comuni. Tutto quello che sta fuori viene elencato per nome in una nota invece di essere tolto in silenzio, che è il modo onesto di fallire.

Fare l’escape delle entità protegge dall’XSS?

È l’escape giusto per il contenuto testuale e per il valore di un attributo fra virgolette, e ovunque altro non basta: dentro un blocco `<script>`, in un URL `javascript:`, in un attributo senza virgolette o in un contesto CSS, l’escape delle entità non fa niente di utile. L’escape deve corrispondere al contesto in cui il testo finisce.

Perché `&#146;` si decodifica in un apostrofo?

Perché la specifica di parsing HTML dice che i code point da 0x80 a 0x9F in un riferimento numerico vanno rimappati sui caratteri Windows-1252 in quelle posizioni. Decodificarli alla lettera darebbe caratteri di controllo C1 invisibili, che è quello che un decodificatore ingenuo produce dal testo incollato da Word.

Si può usare `&nbsp;` in XML?

Non senza una DTD che lo dichiari. XML ha esattamente cinque riferimenti con nome predefiniti — `&amp;` `&lt;` `&gt;` `&quot;` `&apos;` — e la tabella in fondo alla pagina li elenca. Tutto il resto deve essere numerico.

Può ricevere da

Dopo

Questi accettano ciò che produce questo strumento, così il risultato può passare direttamente.