HTML Entity Encoder & Decoder

Escape tekst zodat je die veilig in HTML kunt zetten, of zet entities als & en € terug om in leesbare tekens.

Draait in je browserGeen account nodigNiets wordt geüpload

Gecodeerd

Zo gebruik je de HTML Entity Encoder / Decoder

  1. Kies Coderen om tekst te escapen, of Decoderen om entities terug te zetten naar tekens.
  2. Kies bij het coderen welke tekens je wilt escapen: alleen de speciale HTML-tekens, ook alle niet-ASCII-tekens, of alles behalve letters en cijfers.
  3. Kies benoemde entities (é), decimaal (é) of hex (é).
  4. Kopieer het resultaat. Bij het decoderen worden onbekende entities opgesomd, zodat je typfouten kunt opsporen.

Waarom HTML escapen?

Vijf tekens hebben een speciale betekenis in HTML: & begint een entity, < en > begrenzen tags, en " en ' sluiten attribuutwaarden af. Wordt tekst van gebruikers met deze tekens zonder escaping in een pagina gezet, dan kan dat de layout breken of, erger nog, scripts injecteren (cross-site scripting, XSS). Escaping zet ze om in &amp;, &lt;, &gt;, &quot; en &#x27;, die de browser als tekst toont.

Benoemde, decimale en hex-entities

Elk Unicode-teken kan als numerieke verwijzing worden geschreven: decimaal &#8364; of hex &#x20AC; voor €. Veel gangbare tekens hebben ook een leesbare naam, zoals &euro;, &copy; of &nbsp;. Numerieke verwijzingen werken overal, ook in XML, dat maar vijf benoemde entities definieert. Benoemde entities zijn makkelijker te lezen in broncode.

Moet ik niet-ASCII-tekens coderen?

Niet als je pagina als UTF-8 wordt geserveerd, wat bij vrijwel elke moderne site zo is (<meta charset="utf-8">). Tekens zoals é, ü of 日本 kun je direct schrijven. Ze coderen is nuttig voor legacy-systemen, e-mailtemplates of als een pipeline niet-ASCII-tekst verminkt.

Escaping hangt af van de context

Escaping met HTML-entities beschermt tekst in de inhoud van elementen en in attributen tussen aanhalingstekens. Het is niet genoeg voor waarden in <script>-blokken, inline event handlers, CSS of URL's, die elk hun eigen codering nodig hebben. Gebruik liever de automatische escaping van je framework (React, Vue, Jinja, Blade) dan strings met de hand samen te stellen.

Veelgestelde vragen

Welke tekens moeten in HTML worden ge-escaped?
In tekstinhoud zijn & en < essentieel. Escape in attribuutwaarden ook het aanhalingsteken dat je gebruikt. Alle vijf escapen (& < > " ') is de veilige standaard.
Wat is &amp;nbsp;?
Een harde spatie (U+00A0). Die ziet eruit als een spatie, maar voorkomt een regelafbreking en wordt niet samengevoegd met naastgelegen spaties.
Waarom wordt &amp;copy2024 gedecodeerd als ©2024?
Voor achterwaartse compatibiliteit decoderen browsers een paar oude entities, zoals &copy, &amp en &lt, ook zonder puntkomma aan het eind. Deze decoder volgt dezelfde regel. Schrijf in je eigen HTML altijd de puntkomma.
Is de apostrof &amp;apos; of &amp;#39;?
&apos; is geldig in HTML5 en XML, maar niet in HTML 4, dus numeriek &#39; of &#x27; is de meest compatibele keuze en is wat deze encoder uitvoert.

Gerelateerde tools