Codificatore / decodificatore di entità HTML — Escape e unescape dell'HTML

Esegui l'escape del testo per l'HTML con entità nominali o numeriche, decodifica i riferimenti come & in caratteri e cerca in una tabella di riferimento delle entità.

Codificato
<p class="note">Fish & chips — £4.50 at Café "Ōshima" 🐟</p>

Riferimento delle entità HTML

Car.Con nomeDecimaleEsadecimaleCopia
""""
&&&&
''''
<&lt;&#60;&#x3C;
>&gt;&#62;&#x3E;
·&nbsp;&#160;&#xA0;
¡&iexcl;&#161;&#xA1;
¢&cent;&#162;&#xA2;
£&pound;&#163;&#xA3;
¤&curren;&#164;&#xA4;
¥&yen;&#165;&#xA5;
¦&brvbar;&#166;&#xA6;
§&sect;&#167;&#xA7;
¨&uml;&#168;&#xA8;
©&copy;&#169;&#xA9;
ª&ordf;&#170;&#xAA;
«&laquo;&#171;&#xAB;
¬&not;&#172;&#xAC;
·&shy;&#173;&#xAD;
®&reg;&#174;&#xAE;
¯&macr;&#175;&#xAF;
°&deg;&#176;&#xB0;
±&plusmn;&#177;&#xB1;
²&sup2;&#178;&#xB2;
³&sup3;&#179;&#xB3;
´&acute;&#180;&#xB4;
µ&micro;&#181;&#xB5;
&para;&#182;&#xB6;
·&middot;&#183;&#xB7;
¸&cedil;&#184;&#xB8;
¹&sup1;&#185;&#xB9;
º&ordm;&#186;&#xBA;
»&raquo;&#187;&#xBB;
¼&frac14;&#188;&#xBC;
½&frac12;&#189;&#xBD;
¾&frac34;&#190;&#xBE;
¿&iquest;&#191;&#xBF;
À&Agrave;&#192;&#xC0;
Á&Aacute;&#193;&#xC1;
Â&Acirc;&#194;&#xC2;
Ã&Atilde;&#195;&#xC3;
Ä&Auml;&#196;&#xC4;
Å&Aring;&#197;&#xC5;
Æ&AElig;&#198;&#xC6;
Ç&Ccedil;&#199;&#xC7;
È&Egrave;&#200;&#xC8;
É&Eacute;&#201;&#xC9;
Ê&Ecirc;&#202;&#xCA;
Ë&Euml;&#203;&#xCB;
Ì&Igrave;&#204;&#xCC;
Í&Iacute;&#205;&#xCD;
Î&Icirc;&#206;&#xCE;
Ï&Iuml;&#207;&#xCF;
Ð&ETH;&#208;&#xD0;
Ñ&Ntilde;&#209;&#xD1;
Ò&Ograve;&#210;&#xD2;
Ó&Oacute;&#211;&#xD3;
Ô&Ocirc;&#212;&#xD4;
Õ&Otilde;&#213;&#xD5;
Ö&Ouml;&#214;&#xD6;
×&times;&#215;&#xD7;
Ø&Oslash;&#216;&#xD8;
Ù&Ugrave;&#217;&#xD9;
Ú&Uacute;&#218;&#xDA;
Û&Ucirc;&#219;&#xDB;
Ü&Uuml;&#220;&#xDC;
Ý&Yacute;&#221;&#xDD;
Þ&THORN;&#222;&#xDE;
ß&szlig;&#223;&#xDF;
à&agrave;&#224;&#xE0;
á&aacute;&#225;&#xE1;
â&acirc;&#226;&#xE2;
ã&atilde;&#227;&#xE3;
ä&auml;&#228;&#xE4;
å&aring;&#229;&#xE5;
æ&aelig;&#230;&#xE6;
ç&ccedil;&#231;&#xE7;
è&egrave;&#232;&#xE8;
é&eacute;&#233;&#xE9;
ê&ecirc;&#234;&#xEA;
ë&euml;&#235;&#xEB;
ì&igrave;&#236;&#xEC;
í&iacute;&#237;&#xED;
î&icirc;&#238;&#xEE;
ï&iuml;&#239;&#xEF;
ð&eth;&#240;&#xF0;
ñ&ntilde;&#241;&#xF1;
ò&ograve;&#242;&#xF2;
ó&oacute;&#243;&#xF3;
ô&ocirc;&#244;&#xF4;
õ&otilde;&#245;&#xF5;
ö&ouml;&#246;&#xF6;
÷&divide;&#247;&#xF7;
ø&oslash;&#248;&#xF8;
ù&ugrave;&#249;&#xF9;
ú&uacute;&#250;&#xFA;
û&ucirc;&#251;&#xFB;
ü&uuml;&#252;&#xFC;
ý&yacute;&#253;&#xFD;
þ&thorn;&#254;&#xFE;
ÿ&yuml;&#255;&#xFF;
Α&Alpha;&#913;&#x391;
Β&Beta;&#914;&#x392;
Γ&Gamma;&#915;&#x393;
Δ&Delta;&#916;&#x394;
Ε&Epsilon;&#917;&#x395;
Ζ&Zeta;&#918;&#x396;
Η&Eta;&#919;&#x397;
Θ&Theta;&#920;&#x398;
Ι&Iota;&#921;&#x399;
Κ&Kappa;&#922;&#x39A;
Λ&Lambda;&#923;&#x39B;
Μ&Mu;&#924;&#x39C;
Ν&Nu;&#925;&#x39D;
Ξ&Xi;&#926;&#x39E;
Ο&Omicron;&#927;&#x39F;
Π&Pi;&#928;&#x3A0;
Ρ&Rho;&#929;&#x3A1;
Σ&Sigma;&#931;&#x3A3;
Τ&Tau;&#932;&#x3A4;
Υ&Upsilon;&#933;&#x3A5;
Φ&Phi;&#934;&#x3A6;
Χ&Chi;&#935;&#x3A7;
Ψ&Psi;&#936;&#x3A8;
Ω&Omega;&#937;&#x3A9;
α&alpha;&#945;&#x3B1;
β&beta;&#946;&#x3B2;
γ&gamma;&#947;&#x3B3;
δ&delta;&#948;&#x3B4;
ε&epsilon;&#949;&#x3B5;
ζ&zeta;&#950;&#x3B6;
η&eta;&#951;&#x3B7;
θ&theta;&#952;&#x3B8;
ι&iota;&#953;&#x3B9;
κ&kappa;&#954;&#x3BA;
λ&lambda;&#955;&#x3BB;
μ&mu;&#956;&#x3BC;
ν&nu;&#957;&#x3BD;
ξ&xi;&#958;&#x3BE;
ο&omicron;&#959;&#x3BF;
π&pi;&#960;&#x3C0;
ρ&rho;&#961;&#x3C1;
ς&sigmaf;&#962;&#x3C2;
σ&sigma;&#963;&#x3C3;
τ&tau;&#964;&#x3C4;
υ&upsilon;&#965;&#x3C5;
φ&phi;&#966;&#x3C6;
χ&chi;&#967;&#x3C7;
ψ&psi;&#968;&#x3C8;
ω&omega;&#969;&#x3C9;
Œ&OElig;&#338;&#x152;
œ&oelig;&#339;&#x153;
Š&Scaron;&#352;&#x160;
š&scaron;&#353;&#x161;
Ÿ&Yuml;&#376;&#x178;
ƒ&fnof;&#402;&#x192;
ˆ&circ;&#710;&#x2C6;
˜&tilde;&#732;&#x2DC;
ϑ&thetasym;&#977;&#x3D1;
ϒ&upsih;&#978;&#x3D2;
ϖ&piv;&#982;&#x3D6;
·&ensp;&#8194;&#x2002;
·&emsp;&#8195;&#x2003;
·&thinsp;&#8201;&#x2009;
·&zwnj;&#8204;&#x200C;
·&zwj;&#8205;&#x200D;
·&lrm;&#8206;&#x200E;
·&rlm;&#8207;&#x200F;
–&ndash;&#8211;&#x2013;
—&mdash;&#8212;&#x2014;
‘&lsquo;&#8216;&#x2018;
’&rsquo;&#8217;&#x2019;
‚&sbquo;&#8218;&#x201A;
“&ldquo;&#8220;&#x201C;
”&rdquo;&#8221;&#x201D;
„&bdquo;&#8222;&#x201E;
†&dagger;&#8224;&#x2020;
‡&Dagger;&#8225;&#x2021;
•&bull;&#8226;&#x2022;
…&hellip;&#8230;&#x2026;
‰&permil;&#8240;&#x2030;
′&prime;&#8242;&#x2032;
″&Prime;&#8243;&#x2033;
‹&lsaquo;&#8249;&#x2039;
›&rsaquo;&#8250;&#x203A;
‾&oline;&#8254;&#x203E;
⁄&frasl;&#8260;&#x2044;
€&euro;&#8364;&#x20AC;
ℑ&image;&#8465;&#x2111;
℘&weierp;&#8472;&#x2118;
ℜ&real;&#8476;&#x211C;
™&trade;&#8482;&#x2122;
ℵ&alefsym;&#8501;&#x2135;
←&larr;&#8592;&#x2190;
↑&uarr;&#8593;&#x2191;
→&rarr;&#8594;&#x2192;
↓&darr;&#8595;&#x2193;
↔&harr;&#8596;&#x2194;
↵&crarr;&#8629;&#x21B5;
⇐&lArr;&#8656;&#x21D0;
⇑&uArr;&#8657;&#x21D1;
⇒&rArr;&#8658;&#x21D2;
⇓&dArr;&#8659;&#x21D3;
⇔&hArr;&#8660;&#x21D4;
∀&forall;&#8704;&#x2200;
∂&part;&#8706;&#x2202;
∃&exist;&#8707;&#x2203;
∅&empty;&#8709;&#x2205;
∇&nabla;&#8711;&#x2207;
∈&isin;&#8712;&#x2208;
∉&notin;&#8713;&#x2209;
∋&ni;&#8715;&#x220B;
∏&prod;&#8719;&#x220F;
∑&sum;&#8721;&#x2211;
−&minus;&#8722;&#x2212;
∗&lowast;&#8727;&#x2217;
√&radic;&#8730;&#x221A;
∝&prop;&#8733;&#x221D;
∞&infin;&#8734;&#x221E;
∠&ang;&#8736;&#x2220;
∧&and;&#8743;&#x2227;
∨&or;&#8744;&#x2228;
∩&cap;&#8745;&#x2229;
∪&cup;&#8746;&#x222A;
∫&int;&#8747;&#x222B;
∴&there4;&#8756;&#x2234;
∼&sim;&#8764;&#x223C;
≅&cong;&#8773;&#x2245;
≈&asymp;&#8776;&#x2248;
≠&ne;&#8800;&#x2260;
≡&equiv;&#8801;&#x2261;
≤&le;&#8804;&#x2264;
≥&ge;&#8805;&#x2265;
⊂&sub;&#8834;&#x2282;
⊃&sup;&#8835;&#x2283;
⊄&nsub;&#8836;&#x2284;
⊆&sube;&#8838;&#x2286;
⊇&supe;&#8839;&#x2287;
⊕&oplus;&#8853;&#x2295;
⊗&otimes;&#8855;&#x2297;
⊥&perp;&#8869;&#x22A5;
⋅&sdot;&#8901;&#x22C5;
⌈&lceil;&#8968;&#x2308;
⌉&rceil;&#8969;&#x2309;
⌊&lfloor;&#8970;&#x230A;
⌋&rfloor;&#8971;&#x230B;
⟨&lang;&#10216;&#x27E8;
⟩&rang;&#10217;&#x27E9;
◊&loz;&#9674;&#x25CA;
♠&spades;&#9824;&#x2660;
♣&clubs;&#9827;&#x2663;
♥&hearts;&#9829;&#x2665;
♦&diams;&#9830;&#x2666;

253 di 253 entità. I caratteri invisibili (spazi, joiner, trattino morbido) sono mostrati come ·.

Funziona interamente nel tuo browser. Nulla di ciò che inserisci viene inviato a noi o salvato. Sfoglia tutti gli strumenti gratuiti.

Hai trovato un problema o qualcosa che potrebbe andare meglio? Leggiamo ogni messaggio e sistemiamo le cose in fretta.

Questo codificatore e decodificatore di entità HTML converte i caratteri da e verso i riferimenti a caratteri HTML. La codifica trasforma i cinque caratteri che hanno un significato speciale nel markup (< > & " ') in &lt; &gt; &amp; &quot; e &#39;, così il testo può essere mostrato in una pagina o inserito in un attributo senza essere interpretato come HTML. Puoi anche codificare ogni carattere non ASCII, il che aiuta quando un template, un'email o un sistema legacy rovina l'UTF-8.

La decodifica gestisce entità nominali come &eacute; e &hellip;, riferimenti decimali come &#233; ed esadecimali come &#xE9;, seguendo le regole del parser HTML5, comprese le sue stranezze per i code point non validi. I nomi che non sono nella tabella integrata di 253 voci vengono risolti dal parser HTML del browser, quindi si decodificano tutti gli oltre 2.000 nomi di HTML5. I nomi sconosciuti restano come sono e vengono elencati, invece di sparire senza avviso. Questo strumento converte testo: non è un sanitizzatore HTML.

Come si usa

  1. Scegli Codifica o Decodifica.
  2. Per la codifica, scegli l'ambito: solo i cinque caratteri non sicuri (sufficiente per il normale HTML), tutti i caratteri non ASCII oppure tutto tranne lettere, cifre e spazi.
  3. Scegli riferimenti nominali, decimali o esadecimali. In modalità nominale si passa al decimale per i caratteri senza nome.
  4. Scrivi o incolla: il risultato si aggiorna mentre digiti. Inverti rimanda il risultato nell'input per verificare l'andata e ritorno.
  5. Cerca nella tabella di riferimento per nome, carattere, codice decimale o gruppo (per esempio "arrow" o "greek") e copia un'entità.

Domande frequenti

Quali caratteri vanno sottoposti a escape in HTML?

Nel contenuto testuale vanno sottoposti a escape < e &, perché aprono tag ed entità. Dentro il valore di un attributo, fai l'escape anche delle virgolette che delimitano l'attributo: " come &quot; o ' come &#39;. L'escape di > come &gt; non è strettamente necessario, ma è consuetudine e non fa danni. Tutto il resto, comprese lettere accentate ed emoji, può comparire così com'è in una pagina UTF-8.

Che differenza c'è tra &nbsp; e uno spazio normale?

&nbsp; è U+00A0, uno spazio unificatore. A differenza degli spazi normali, i browser non vanno a capo in quel punto e non ne riducono diversi a uno solo. Serve per tenere sulla stessa riga "10 kg" o "Sig. Rossi". Usare file di &nbsp; per l'impaginazione è segno che quel lavoro spetta al CSS.

Meglio &apos; o &#39;?

&apos; è definita in XML e in HTML5 ma non in HTML 4, quindi i browser molto vecchi e alcuni client email non la riconoscono. &#39; funziona ovunque, ed è per questo che questo codificatore la usa per l'apostrofo anche in modalità nominale. In una pagina HTML5 moderna vanno bene entrambe.

La codifica HTML basta a prevenire l'XSS?

L'escape di < > & " ' impedisce l'iniezione nel testo HTML e nei valori di attributo tra virgolette, che è il caso più comune. Non rende sicuro un valore dentro un blocco <script>, un attributo style, un attributo senza virgolette o un URL come href="javascript:...". Ognuno di questi contesti richiede la propria codifica o validazione. Usa un motore di template che faccia l'escape per impostazione predefinita e un sanitizzatore come DOMPurify quando devi accettare HTML dagli utenti.

Perché nel mio testo vedo &amp;amp; o é?

&amp;amp; significa che il testo è stato codificato in HTML due volte: & è diventato &amp; e poi quella & è stata codificata di nuovo. Decodifica una volta per ogni livello in più. é al posto di é non è un problema di entità ma di codifica dei caratteri non corrispondente: dei byte UTF-8 sono stati letti come Windows-1252 o Latin-1. Correggi la dichiarazione del charset o la codifica della connessione al database: le entità nasconderebbero solo il sintomo.

Riferimenti nominali, decimali ed esadecimali

L'HTML offre tre modi per scrivere lo stesso carattere. Un riferimento nominale come &copy; è leggibile, ma esiste solo per i caratteri a cui l'HTML assegna un nome. Un riferimento decimale come &#169; e uno esadecimale come &#xA9; funzionano per ogni code point Unicode, emoji comprese: 🌲 è &#127794; o &#x1F332;, un solo riferimento per l'intero carattere, non due per le sue metà UTF-16.

I 253 nomi della tabella di questo strumento sono l'insieme di HTML 4 più &apos;. Sono supportati da ogni browser, client email e libreria HTML. HTML5 ne ha aggiunti circa 2.000, soprattutto simboli matematici (&NotEqualTilde;, &bigotimes;), che si decodificano nei browser moderni ma è meglio scrivere come semplice UTF-8 o come riferimenti numerici se il contenuto passerà per strumenti più vecchi.

I nomi distinguono tra maiuscole e minuscole: &Eacute; è É e &eacute; è é. Alcuni, come &COPY; e &AMP;, esistono anche in maiuscolo per ragioni storiche, ma le forme standard sono quelle minuscole.

Quando codificare e quando no

• Mostrare l'input degli utenti in una pagina: fai l'escape dei cinque caratteri non sicuri al momento dell'output, nel template, non quando salvi nel database.

• Esempi di codice in un articolo di blog o nella documentazione: fai l'escape di < e & così i tag compaiono come testo.

• Template email e sistemi legacy con un supporto UTF-8 inaffidabile: codificare tutti i caratteri non ASCII come riferimenti numerici fa sì che il contenuto sopravviva a qualsiasi charset.

• Pagine UTF-8 moderne: non codificare lettere accentate, virgolette curve o emoji. I caratteri semplici occupano meno spazio, si possono cercare e sono più facili da modificare.

• JSON, URL e stringhe JavaScript: lì le entità HTML non significano nulla. Usa rispettivamente l'escape JSON, il percent-encoding o le sequenze di escape delle stringhe JavaScript.

Come vengono decodificati i riferimenti numerici

La specifica HTML5 stabilisce cosa deve fare un parser con i riferimenti numerici anomali, e questo decodificatore la segue. &#0;, i riferimenti a code point surrogati (&#xD800;) e i valori oltre U+10FFFF diventano il carattere di sostituzione U+FFFD. I riferimenti nell'intervallo da &#128; a &#159; vengono letti come Windows-1252, quindi &#150; è un trattino medio e &#128; è il simbolo dell'euro, perché è quello che intendevano le vecchie pagine quando li scrivevano.

I riferimenti nominali vengono decodificati solo se terminano con un punto e virgola. Nel testo i browser accettano anche alcuni nomi storici senza, come &copy o &amp, ma il comportamento dipende da ciò che segue, quindi il contenuto dovrebbe sempre includere il punto e virgola.

Strumenti gratuiti correlati

  • Codificatore / decodificatore URL — Codifica o decodifica il testo per gli URL con il percent-encoding in modalità componente, URL completo o modulo, e modifica i parametri di query di un URL in una tabella.
  • Codificatore / decodificatore Base64 — Codifica testo o file in Base64, trasforma immagini in data URI con snippet CSS e <img>, e decodifica Base64 in un file con anteprima. Nulla esce dal tuo browser.
  • Generatore di meta tag — Compila title, description e dettagli della social card di una pagina; ottieni un blocco <head> completo, con escape corretto e contatori di lunghezza in tempo reale.
  • Formattatore JSON — Formatta, minifica e valida JSON, con gli errori di parsing localizzati per riga e colonna. Nel tuo browser, senza upload.