TanodTools
IT

Codifica e decodifica entità HTML

Trasforma il testo in entità HTML, oppure trasforma entità come & e € di nuovo nei caratteri che rappresentano.

Funziona nel browser; nulla di ciò che scrivi lascia il tuo dispositivo

Cosa vuoi fare?

Incolla del testo per iniziare.

Testo fino a qualche milione di caratteri. La decodifica comprende tutte le entità con nome che il tuo browser conosce (l'elenco completo di HTML5) e i numeri decimali ed esadecimali; ogni riferimento richiede il punto e virgola finale. La decodifica è a un solo livello: &amp;lt; diventa &lt;, non <.

Come codificare e decodificare entità HTML

  1. Scegli Codifica o Decodifica e incolla il testo.
  2. Durante la codifica, scegli se codificare solo i caratteri non sicuri, usare nomi come &eacute; dove esistono, oppure usare numeri per tutto ciò che è fuori da ASCII.
  3. Copia il risultato.

Cosa sono le entità HTML

L'HTML assegna un ruolo speciale a pochi caratteri: il segno minore apre un tag, la e commerciale apre un'entità e le virgolette chiudono il valore di un attributo. Per mostrare uno di questi caratteri come testo, scrivi al suo posto un'entità: &lt; per <, &amp; per &. Le entità permettono anche di scrivere caratteri difficili da digitare o che una vecchia codifica di pagina non riesce a contenere, come &eacute; per é, &euro; per € o &#128512; per una emoji.

Un'entità inizia con una e commerciale e finisce con un punto e virgola. Nel mezzo c'è un nome (copy), un numero decimale dopo # (#169) o un numero esadecimale dopo #x (#xA9). Tutte e tre scrivono il simbolo del copyright. La codifica scorre il testo un carattere alla volta: i cinque caratteri non sicuri diventano sempre entità, e il resto dipende dall'opzione scelta, da nulla fino a un numero per ogni carattere.

La decodifica legge ogni riferimento e lo sostituisce con il suo carattere. I numeri vengono convertiti direttamente, secondo le regole HTML: un numero pari a zero, fuori intervallo o un surrogato diventa il carattere di sostituzione, e i numeri da 128 a 159 sono letti come caratteri Windows-1252, come fanno i browser. I nomi sono risolti dal tuo browser, che conosce tutto l'elenco di HTML5. La decodifica avviene in un solo passaggio, quindi &amp;lt; diventa &lt; e non un semplice segno minore.

Suggerimenti

Domande frequenti

Quali caratteri vanno sottoposti a escape in HTML?

Cinque: il segno minore < (&lt;), il segno maggiore > (&gt;), la e commerciale & (&amp;), le virgolette doppie " (&quot;) e l'apice singolo ' (&#39;). L'escape permette di mostrare codice o input dell'utente come testo, senza che venga letto come markup. La prima opzione, Solo i caratteri non sicuri, fa esattamente questo.

Che differenza c'è tra entità con nome e numeriche?

Un'entità con nome usa una parola breve, come &eacute; per é o &euro; per €. Una numerica usa il code point Unicode, in decimale (&#233;) o esadecimale (&#xE9;). Entrambe danno lo stesso carattere. Solo alcuni caratteri hanno un nome; gli altri richiedono i numeri.

Perché codificare i caratteri non ASCII?

Se una pagina o un'email non è servita come UTF-8, le lettere accentate e i simboli possono diventare caratteri illeggibili. Le entità sono ASCII puro, quindi sopravvivono a qualsiasi codifica.

La decodifica copre ogni entità?

Sì. I riferimenti decimali ed esadecimali vengono convertiti direttamente, e i nomi vengono risolti dal parser HTML del browser, che conosce l'elenco completo di HTML5 con oltre duemila nomi. Un riferimento senza punto e virgola resta com'è, così come un nome sconosciuto, che viene elencato così lo vedi.

Codificare basta a fermare lo XSS?

Codificare i cinque caratteri non sicuri è la soluzione giusta quando inserisci testo nel contenuto di un elemento HTML o nel valore di un attributo tra virgolette. Non basta dentro uno script, uno style, un attributo senza virgolette o un URL, che richiedono un escape specifico. Questo strumento serve per il testo che incolli e non sostituisce l'escape del tuo framework.

Il mio testo viene caricato?

No. Tutto avviene nel tuo browser e nulla lascia il tuo dispositivo.