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
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: &lt; diventa <, non <.
Come codificare e decodificare entità HTML
- Scegli Codifica o Decodifica e incolla il testo.
- Durante la codifica, scegli se codificare solo i caratteri non sicuri, usare nomi come é dove esistono, oppure usare numeri per tutto ciò che è fuori da ASCII.
- 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à: < per <, & per &. Le entità permettono anche di scrivere caratteri difficili da digitare o che una vecchia codifica di pagina non riesce a contenere, come é per é, € per € o 😀 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 &lt; diventa < e non un semplice segno minore.
Suggerimenti
- Devi invece fare l'escape di un valore per un indirizzo web? Usa Codifica e decodifica URL.
- Ordina il markup prima dell'escape con il formattatore HTML.
- Non capisci perché il testo sembra strano? Dentro possono nascondersi caratteri invisibili: controlla con il rilevatore di caratteri invisibili.
Domande frequenti
Quali caratteri vanno sottoposti a escape in HTML?
Cinque: il segno minore < (<), il segno maggiore > (>), la e commerciale & (&), le virgolette doppie " (") e l'apice singolo ' ('). 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 é per é o € per €. Una numerica usa il code point Unicode, in decimale (é) o esadecimale (é). 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.