UltKit

HTML-entiteiten coderen en decoderen

Codeer de tekens die HTML als opmaak behandelt, desgewenst ook elk niet-ASCII-teken, of zet entiteiten zoals é en — terug om naar gewone tekst. Beide richtingen werken in uw browser en gedecodeerde invoer wordt nooit als actieve HTML weergegeven.

Modus
Entiteitsstijl
Escapen

0 tekens · 0 woorden · 0 regels

0 tekens · 0 woorden · 0 regels

Werkt volledig in dit browsertabblad. Uw tekst wordt nooit geüpload of opgeslagen.

Veelgebruikte tekens en hun entiteiten

Benoemde, decimale en hexadecimale vormen decoderen allemaal naar hetzelfde teken. De encoder kent 216 veelgebruikte benoemde entiteiten; de decoder begrijpt elke benoemde verwijzing in de HTML-standaard.

TekenBenoemdDecimaalHex
&&&&
<&lt;&#60;&#x3C;
>&gt;&#62;&#x3E;
"&quot;&#34;&#x22;
'&apos;&#39;&#x27;
(niet-afbrekende spatie)&nbsp;&#160;&#xA0;
©&copy;&#169;&#xA9;
®&reg;&#174;&#xAE;
™&trade;&#8482;&#x2122;
€&euro;&#8364;&#x20AC;
£&pound;&#163;&#xA3;
¥&yen;&#165;&#xA5;
—&mdash;&#8212;&#x2014;
–&ndash;&#8211;&#x2013;
…&hellip;&#8230;&#x2026;
«&laquo;&#171;&#xAB;
»&raquo;&#187;&#xBB;
°&deg;&#176;&#xB0;
×&times;&#215;&#xD7;
÷&divide;&#247;&#xF7;
é&eacute;&#233;&#xE9;
π&pi;&#960;&#x3C0;
→&rarr;&#8594;&#x2192;
😀—&#128512;&#x1F600;

Van 252 entiteiten in HTML 4 naar 2.231 in HTML5

Een tekenverwijzing is een manier om een teken alleen met ASCII te schrijven. Numerieke verwijzingen werken voor elk Unicode-codepunt, decimaal (&#233;) of hexadecimaal (&#xE9;). Benoemde verwijzingen zijn makkelijker te onthouden: HTML 4 definieerde er 252, met Latin-1-letters zoals &eacute;, Griekse letters, wiskundige symbolen en typografische tekens zoals &mdash; en &hellip;. Opvallend genoeg zat &apos; daar niet bij; die komt uit XML en werd pas met HTML5 geldig in HTML.

HTML5 breidde de lijst uit tot 2.231 benoemde tekenverwijzingen en nam daarbij de MathML-entiteitenset over, zodat namen als &check;, &bigstar; en &NotEqualTilde; nu in elke actuele browser werken. Het aantal omvat ook oudere schrijfwijzen zonder afsluitende puntkomma, zoals &amp en &copy, die parsers om compatibiliteitsredenen nog accepteren maar die u niet moet schrijven. De encoder hier gebruikt de breed ondersteunde HTML 4-namen plus &apos; en valt voor al het andere terug op een numerieke verwijzing; de decoder geeft de tekst aan de eigen parser van de browser, zodat alle 2.231 namen worden begrepen.

Wat u moet coderen en wanneer coderen niet genoeg is

Alleen & < > " ' is de instelling voor dagelijks gebruik: die escapet de vijf tekens die een tekstknooppunt of een attribuut tussen aanhalingstekens kunnen afsluiten, genoeg om een codevoorbeeld op een pagina te tonen of gebruikerstekst veilig in HTML te plaatsen. Ook elk niet-ASCII-teken zet é, € en emoji eveneens om in verwijzingen, voor het zeldzame kanaal dat geen UTF-8 aankan, zoals sommige oude e-mailtemplates of systemen die coderingen verhaspelen. Benoemd, Decimaal en Hex veranderen alleen hoe een verwijzing is geschreven; alle drie worden gedecodeerd naar hetzelfde teken. Een pagina die als UTF-8 is opgeslagen heeft geen entiteiten nodig voor letters met accenten.

Escapen beschermt alleen de HTML-context en niets anders. Tekst in een scriptblok, een inline event handler zoals onclick, een style-attribuut of een href die met javascript: kan beginnen, vraagt om een andere aanpak, en entiteitscodering alleen voorkomt daar geen cross-site scripting. Frameworks zoals React escapen tekst standaard, dus dubbel escapen is in moderne apps de vaker voorkomende fout: gebruikers zien &amp; waar een ampersand hoort te staan. Wilt u tags helemaal verwijderen, converteer de opmaak dan met HTML naar TXT; voor escapen binnen URL's gebruikt u URL coderen en decoderen.

Veelgestelde vragen

Welke tekens moeten in HTML worden gecodeerd?
In tekst zijn & en < de belangrijkste, en > wordt volgens afspraak ook geëscaped. In een attribuutwaarde escapet u daarnaast het aanhalingsteken dat de waarde omsluit. Als u alle vijf escapet, dekt u beide gevallen.
Wat is het verschil tussen &nbsp; en een gewone spatie?
&nbsp; is de niet-afbrekende spatie, U+00A0. Hij ziet eruit als een spatie, maar voorkomt een regelafbreking op die plek en wordt, anders dan gewone spaties in HTML, niet samengevoegd als er meerdere achter elkaar staan.
Waarom toont mijn pagina &amp; in plaats van een ampersand?
De tekst is twee keer geëscaped: één keer in uw gegevens en nog eens door uw template of framework. Sla ruwe tekst op en laat één laag, meestal de template, het escapen bij de uitvoer doen.
Is het veilig om hier HTML uit een onbetrouwbare bron te decoderen?
Ja. De decoder verwerkt de invoer als gewone tekstinhoud, dus er worden geen tags aangemaakt, scripts draaien niet en afbeeldingen worden niet geladen. Alleen entiteitsverwijzingen worden omgezet in tekens.
Zijn benoemde of numerieke entiteiten beter?
Benoemde verwijzingen lezen makkelijker, numerieke werken voor elk teken en in elke XML-parser. In XML zonder DTD zijn alleen &amp;, &lt;, &gt;, &quot; en &apos; voorgedefinieerd.