Gratis HTML-entiteiten encoder — HTML escapen
Encodeer HTML-entiteiten en escape speciale tekens (< > & " ') online — gratis, geen account, 100% in je browser. Genoemde, decimale of hex-uitvoer; nooit geüpload.
Je tekst wordt lokaal in je browser geëncodeerd en nooit geüpload, gelogd of opgeslagen. Hij blijft op dit apparaat.
Opties · Notatie- en encoderingsopties
Wat is HTML-entiteitencodering?
HTML-entiteitencodering — ook wel HTML escapen genoemd — is het proces waarbij tekens met een speciale betekenis in HTML vervangen worden door een veilige tekstuele weergave, een entiteit, zodat de browser ze als letterlijke tekst toont in plaats van ze als opmaak te interpreteren. De vijf tekens die er het meest toe doen, zijn die welke HTML gebruikt om een document op te bouwen: de punthaken < en > die tags openen en sluiten, de ampersand & die een entiteit begint, en de aanhalingstekens " en ' die attribuutwaarden afbakenen. Wanneer een van deze verschijnt in inhoud die getoond en niet uitgevoerd moet worden, moet het geëscaped worden, anders leest de browser de pagina verkeerd — in het beste geval wordt je tekst fout weergegeven, in het slechtste geval glipt een aanvaller een <script>-tag binnen.
Het helpt om precies te zijn over wat deze tool doet. Hij encodeert tekst naar entiteiten; hij stelt geen document samen en maakt het niet op. Wil je een tekenreeks code als platte tekst op een pagina lezen, of voeg je gebruikersinvoer in je HTML in en moet je die neutraliseren, dan is dit de juiste tool. Wil je daarentegen bestaande opmaak inspringen en netjes maken, dan is dat het werk van de HTML-formatter; en om entiteiten terug naar tekens te zetten, gebruik je de HTML-entiteiten decoder.
Er zijn drie manieren om een entiteit te schrijven en ze zijn uitwisselbaar. Een genoemde referentie gebruikt een gebruiksvriendelijk label (< voor <, © voor ©); een decimale numerieke referentie schrijft het Unicode-codepunt van het teken in grondtal 10 (< voor <); en een hexadecimale referentie schrijft hetzelfde codepunt in grondtal 16 (< voor <), passend bij de U+XXXX-notatie van de Unicode-standaard. Genoemde entiteiten lezen het best maar bestaan alleen voor tekens met een gedefinieerde naam; numerieke entiteiten kunnen elk codepunt weergeven, en daarom zijn ze de veilige terugvaloptie. De tabel hieronder somt de entiteiten op die je het vaakst zult gebruiken:
| Teken | Genoemd | Decimaal | Hex | |-----------|-------|---------|-----| | < | < | < | < | | > | > | > | > | | & | & | & | & | | " | " | " | " | | ' | ' | ' | ' | | (spatie) | |   |   | | © | © | © | © | | ® | ® | ® | ® | | ™ | ™ | ™ | ™ | | € | € | € | € | | £ | £ | £ | £ | | — | — | — | — | | – | – | – | – | | … | … | … | … | | é | é | é | é |
Let erop dat de apostrof als ' (of ') geschreven wordt in plaats van ': de genoemde ' werd pas in HTML5 en XML gestandaardiseerd en is onveilig in oudere HTML4-parsers, dus de numerieke vorm — overal begrepen — is de compatibele keuze. Deze tool volgt dezelfde conventie als de veelgebruikte he-bibliotheek, en daarom is de standaarduitvoer voor ' gelijk aan '.
Het onderscheid tussen een tekenset en een entiteit is het waard om vast te houden, want het verklaart de optie "Alle niet-ASCII encoderen". Een tekenset (zoals UTF-8) bepaalt hoe tekens als bytes opgeslagen worden; een entiteit is een manier om een teken te schrijven met alleen de platte ASCII-tekens & # ; en letters of cijfers. Op een moderne UTF-8-pagina zijn é, — en 😀 geldige ruwe tekens en hebben ze helemaal geen entiteit nodig — en daarom laat de standaardmodus ze met rust. Je dwingt ze alleen in entiteiten wanneer de tekst door een systeem moet dat geen ruwe UTF-8 aankan, in welk geval elk niet-ASCII-codepunt herschreven wordt als een ASCII-veilige numerieke of genoemde referentie. En omdat dit alles in je browser draait, kruist de opmaak die je escapet — zelfs een privésjabloon of een niet-gepubliceerd concept — nooit het netwerk. Voor verwante conversies handelen de JSON Escape- en Base64 encoderen/decoderen-tools respectievelijk escaping voor JavaScript-tekenreeksen en binair-veilig transport af.
// Server-side templates auto-escape, but when you build HTML by hand you must escape yourself.
// The five reserved characters and their safe entities:
// < → < > → > & → & " → " ' → '
// Node.js — escape untrusted input before inserting it into HTML element content.
function escapeHtml(str) {
return str
.replace(/&/g, '&') // & first, so later entities are not double-escaped
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, '''); // numeric form — safe in HTML4, HTML5 and XML
}
const userInput = `<a href="x">Tom & Jerry's</a>`;
const safe = escapeHtml(userInput);
// → <a href="x">Tom & Jerry's</a>
document.getElementById('out').innerHTML = `<p>${safe}</p>`; // renders as literal text
// ---------------------------------------------------------------
// In practice, prefer the platform's built-in escaping where it exists:
// - React / Vue / Angular escape interpolated text by default
// - Use textContent instead of innerHTML when you only need text:
// el.textContent = userInput; // the browser escapes for you
// - Server frameworks (Jinja, ERB, Blade) auto-escape unless you opt out Belangrijkste functies
Escapet de vijf gereserveerde tekens correct
< > & " ' worden omgezet naar hun veilige entiteiten precies zoals een geharde XSS-preventiebibliotheek zou doen — inclusief de compatibiliteitsveilige ' voor de apostrof in plaats van de HTML4-onveilige '. Dit is exact de set die niet-vertrouwde invoer neutraliseert in HTML-element- en attribuutcontexten.
Genoemde, decimale en hex-uitvoer
Krijg dezelfde tekens als leesbare genoemde entiteiten (<, ©), decimale numerieke referenties (<) of hexadecimale referenties (<). Kies de vorm die je ontvangende systeem verwacht; alle drie lossen bij het parsen naar identieke tekens op.
Optionele modus om alle niet-ASCII te encoderen
Standaard worden alleen de gereserveerde tekens geëscaped, zodat accenten en emoji als leesbare ruwe UTF-8 blijven. Vink één vakje aan om elk codepunt boven 0x7F om te zetten in een ASCII-veilige entiteit voor verouderde tekensets of systemen die UTF-8 verminken.
Live, direct encoderen
De uitvoer wordt bijgewerkt terwijl je typt — geen verzendknop, geen retourlatentie. Plak een groot blok opmaak en het geëscapede resultaat verschijnt onmiddellijk, klaar om te kopiëren.
Ingebouwde entiteit-snelreferentie
Een referentietabel van de meest voorkomende entiteiten — de gereserveerde vijf plus ©, ®, ™, €, —, en meer — staat direct op de pagina in genoemde, decimale en hex-vorm, zodat je nooit elders een entiteit hoeft op te zoeken.
Wissel met één klik naar de decoder
Richting omwisselen springt direct naar de HTML-entiteiten decoder om de bewerking om te draaien. Encoderen en decoderen zijn exacte inversen, dus je kunt tekst zonder verlies heen en weer halen.
100% privé, alleen in de browser
Al het encoderen gebeurt op je apparaat met JavaScript — geen netwerkverzoeken, geen logging, geen opslag, verifieerbaar in DevTools → Netwerk. Privé-opmaak, e-mailsjablonen en niet-gepubliceerde concepten verlaten het tabblad nooit.
Beschikbaar in 15 talen
De volledige interface — labels, instructies en uitleg — is gelokaliseerd in 15 talen, zodat de tool en het escape-advies duidelijk zijn waar je team ook werkt.
Uitgewerkte voorbeelden
Een HTML-fragment escapen (de standaardmodus "speciale tekens")
<a href="x">Tom & Jerry's</a>
<a href="x">Tom & Jerry's</a>
In de standaardmodus "speciale tekens" herschrijft de encoder alleen de vijf tekens die betekenis dragen in HTML-opmaak: < wordt <, > wordt >, & wordt &, " wordt " en ' wordt '. De apostrof wordt als de numerieke ' weergegeven in plaats van de genoemde ', omdat ' niet gedefinieerd is in HTML4 en oudere parsers er problemen mee kunnen krijgen, terwijl de hex-vorm overal begrepen wordt. Na het encoderen geeft de browser de tekenreeks weer als letterlijke tekst — de <a>-tag wordt getoond, niet aangeklikt — wat precies de manier is om opmaak veilig op een pagina te tonen.
Niet-ASCII-tekens blijven behouden in de standaardmodus
Visit our café — it's 😀
Visit our café — it's 😀
De modus "speciale tekens" raakt alleen de vijf gereserveerde HTML-tekens aan, dus letters met accenten (café), de kastlijn (—) en emoji (😀) gaan ongewijzigd door. Zo blijft de uitvoer leesbaar en compact, wat je wilt voor UTF-8-pagina's die al <meta charset="utf-8"> declareren. Alleen de apostrof in "it's" wordt geëscaped, naar '. Heb je elk niet-ASCII-teken als entiteit nodig voor een verouderde tekenset, vink dan "Alle niet-ASCII encoderen" aan — zie het voorbeeld hieronder.
Decimale numerieke entiteiten
<>&"'
<>&"'
Zet de notatie op Decimaal en elk speciaal teken wordt geschreven als een decimale numerieke tekenreferentie: < is <, > is >, & is &, " is " en ' is '. Decimale entiteiten zijn de breedst compatibele numerieke vorm — elke conforme HTML- en XML-parser begrijpt ze — wat ze een veilige keuze maakt wanneer je niet zeker kunt zijn dat genoemde entiteiten als © door het ontvangende systeem ondersteund worden.
Hexadecimale numerieke entiteiten
<>&"'
<>&"'
De Hex-notatie schrijft elk teken als een hexadecimale numerieke referentie: < is <, > is >, & is &, " is " en ' is '. Hex en decimaal zijn uitwisselbaar — beide verwijzen naar hetzelfde Unicode-codepunt — maar hex sluit één-op-één aan op de U+XXXX-notatie die je in de Unicode-standaard ziet, dus het is de vorm die veel ontwikkelaars verkiezen bij het documenteren of redeneren over specifieke codepunten.
Alle niet-ASCII-tekens encoderen
café
café (named) · café (decimal) · café (hex)
Vink "Alle niet-ASCII-tekens encoderen" aan en elk codepunt boven 0x7F wordt omgezet in een entiteit, niet alleen de vijf gereserveerde. De é in café wordt de genoemde é, de decimale é of de hex é afhankelijk van de gekozen notatie — alle drie verwijzen naar hetzelfde teken, U+00E9. Deze modus is bedoeld voor pagina's die in een niet-Unicode-tekenset geserveerd worden, of voor systemen die ruwe UTF-8 verminken, waar het forceren van alles naar 7-bit-veilige ASCII-entiteiten garandeert dat de tekst het transport intact overleeft.
Zo gebruik je de HTML-entiteiten encoder
- 1
Plak je HTML of tekst
Zet de opmaak of platte tekst die je wilt escapen in het invoervak. De geëncodeerde uitvoer wordt live bijgewerkt terwijl je typt — er is geen verzendknop en er wordt niets ergens heen gestuurd.
- 2
Kies de entiteitnotatie
Genoemd is de leesbare standaard (<, &, ©). Schakel over naar Decimaal (<) of Hex (<) wanneer een ontvangend systeem numerieke referenties verkiest of je niet kunt garanderen dat genoemde entiteiten ondersteund worden.
- 3
Eventueel alle niet-ASCII encoderen
Laat dit uit voor moderne UTF-8-pagina's, zodat accenten en emoji als leesbare ruwe tekens blijven. Vink het alleen aan wanneer de tekst een verouderde single-byte-tekenset moet overleven, waarbij elk teken boven 0x7F naar een ASCII-veilige entiteit wordt omgezet.
- 4
Kopieer het geëncodeerde resultaat
Klik op Kopiëren om de geëscapede tekenreeks op je klembord te zetten, klaar om in een sjabloon, een documentatiepagina of een databaseveld te plakken. Wissen stelt beide vensters opnieuw in voor het volgende fragment.
- 5
Het omgekeerde nodig? Wissel de richting
Gebruik Richting omwisselen om over te schakelen naar de HTML-entiteiten decoder wanneer je entiteiten terug wilt zetten naar de tekens die ze vertegenwoordigen.
Veelgemaakte fouten bij HTML-encoderen
De ampersand als laatste geëscaped, met dubbele escaping als gevolg
Vervang je < en > vóór &, dan worden de zojuist gemaakte entiteiten met hun & opnieuw geëscaped, dus < wordt < en rendert als letterlijke tekst. Escape altijd & eerst.
replace < and > first, then & → < becomes &lt;
escape & first, then the rest → < stays <
' gebruikt voor de apostrof in verouderde contexten
' is ongedefinieerd in HTML4 en sommige e-mailclients tonen het letterlijk. Gebruik de numerieke ' of ', die elke parser begrijpt, bij oudere of gemengde omgevingen.
It's here → may render as It's here
It's here → renders as It's here
De data twee keer geëncodeerd
Reeds geëscapede tekst opnieuw door de encoder halen, encodeert die dubbel: & wordt & en de gebruiker ziet & in plaats van &. Escape precies één keer, op het moment van uitvoer.
& encoded again → &amp; shows as &
& left as-is → renders as &
HTML-escaping gebruikt voor een URL- of JavaScript-context
HTML-entiteiten maken een waarde niet veilig binnen een URL of een inline-script. Een spatie in een URL heeft %20 nodig, en een tekenreeks in JavaScript heeft JS-/JSON-escaping nodig. Stem de encodering af op waar de waarde belandt.
href="/search?q=a&b c" → the space still breaks the URL
href="/search?q=a%26b%20c" → URL-encoded, valid
Niet-ASCII onnodig geëncodeerd op een UTF-8-pagina
Café in café forceren op een moderne UTF-8-pagina blaast de bron op en schaadt de leesbaarheid zonder voordeel. Laat niet-ASCII ruw, tenzij een verouderde tekenset entiteiten werkelijk vereist.
café on a UTF-8 page → needless, harder to read
café on a UTF-8 page → valid and clean
Vergeten aanhalingstekens binnen een attribuutwaarde te escapen
Een niet-geëscapete " in een attribuut invoegen laat de waarde uitbreken en nieuwe attributen injecteren — een XSS-vector. Escape altijd " (en idealiter ') in attribuutcontext, wat deze tool standaard doet.
title="He said "hi"" → attribute breaks out
title="He said "hi"" → contained
Wie gebruikt deze tool
- Codevoorbeelden op een webpagina tonen
- Schrijf je een tutorial of documentatie die letterlijke HTML moet tonen? Escape het fragment zodat <strong>bold</strong> als tekst verschijnt in plaats van te renderen. Plak de opmaak, kopieer de geëscapede uitvoer en zet die in een <pre>- of <code>-blok.
- Gebruikersinvoer ontsmetten tegen XSS
- Escape de vijf gereserveerde tekens voordat je een door gebruikers ingevoerde tekenreeks in je HTML invoegt, zodat een payload als <script>…</script> inerte tekst wordt. Dit is de fundamentele verdediging tegen cross-site scripting wanneer je opmaak met de hand bouwt.
- Opmaak opslaan in een databaseveld of JSON
- Moet je een HTML-fragment als platte tekenreeks bewaren zonder dat het verderop geïnterpreteerd wordt? Encodeer het eerst zodat de punthaken en ampersands de opslag en herweergave intact overleven, en decodeer het op de terugweg.
- E-mailsjablonen en CMS-inhoud opstellen
- E-mailclients en contentmanagementsystemen zijn onverbiddelijk over ruwe speciale tekens. Escape de gereserveerde set — en eventueel alle niet-ASCII — zodat je sjabloon consistent rendert over clients die je tekenset misschien niet delen.
- Tekst omzetten voor een verouderde tekenset
- Mik je op een systeem dat geen ruwe UTF-8 aankan? Zet "Alle niet-ASCII encoderen" aan om elke letter met accent, symbool en emoji als ASCII-veilige entiteit te herschrijven, zodat de tekst het transport door 7-bit-schone pijplijnen overleeft.
- XML- en SVG-attribuutwaarden escapen
- XML en inline-SVG delen de gereserveerde tekens van HTML. Encodeer aanhalingstekens en punthaken zodat een tekenreeks met ingebedde opmaak veilig in een attribuutwaarde past zonder de documentstructuur te breken.
- Snel een entiteit opzoeken
- Vergeten of het handelsmerkteken ™ of ™ is? Typ het teken, lees de genoemde, decimale en hex-entiteit af van de uitvoer, of raadpleeg de ingebouwde snelreferentietabel zonder de pagina te verlaten.
Hoe de encoder werkt
- Modus speciale tekens (standaard)
- Standaard worden alleen de vijf HTML-gereserveerde tekens geëscaped — & < > " ' — volgens de WHATWG-serialisatieregels voor veilige uitvoer. & wordt eerst vervangen zodat de entiteiten voor de andere tekens niet dubbel geëscaped worden. Alle overige tekens, inclusief niet-ASCII, gaan ongewijzigd door.
- De apostrof gebruikt '
- In plaats van de genoemde ' — die ongedefinieerd is in HTML4 en onveilig in sommige verouderde parsers — wordt het enkele aanhalingsteken als de numerieke ' (decimaal ') weergegeven, verwijzend naar U+0027. Dit komt overeen met de conventie van goed geteste bibliotheken als he en garandeert dat de uitvoer veilig is in HTML4, HTML5 en XML.
- Genoemde, decimale en hex-encodering
- De notatieselector bepaalt hoe elk geëscaped teken geschreven wordt: Genoemd gebruikt gedefinieerde labels waar die bestaan (<, ©), Decimaal schrijft het Unicode-codepunt in grondtal 10 (<) en Hex schrijft het in grondtal 16 (<). Numerieke vormen verwijzen naar dezelfde codepunten als de genoemde vormen en zijn bij het parsen uitwisselbaar.
- Optie om alle niet-ASCII te encoderen
- Wanneer ingeschakeld wordt elk teken met een codepunt boven 0x7F omgezet in een entiteit in de gekozen notatie — café wordt café (genoemd), café (decimaal) of café (hex). Astrale tekens zoals emoji worden met hun volledige codepunt geëncodeerd (😀 → 😀). Dit levert 7-bit-schone ASCII-uitvoer op voor verouderd transport.
- Tekenset versus entiteiten
- Een tekenset bepaalt hoe tekst als bytes opgeslagen wordt; een entiteit is een manier om een teken te spellen met alleen ASCII. Op een UTF-8-pagina hebben niet-ASCII-tekens geen entiteit nodig, en daarom laat de standaard ze ruw. Alles encoderen is alleen nodig wanneer de uitvoer een niet-Unicode-tekenset of een UTF-8-vijandig systeem moet passeren.
- Browser-lokaal, nul netwerk
- Het encoderen draait synchroon in JavaScript op de hoofdthread; er is geen API-aanroep, geen worker-retour naar een server en geen opslag. De invoer verlaat de pagina nooit, wat je kunt bevestigen door tijdens het typen naar een leeg Netwerk-paneel te kijken.
Best practices voor HTML escapen
- Escape bij de uitvoer, in de juiste context
- Encodeer data op het moment dat je die in HTML invoegt, niet wanneer je die ontvangt, en stem de encodering af op de context. HTML-entiteitencodering is voor HTML-element- en attribuutinhoud; gebruik URL-encodering binnen URL's en JavaScript-/JSON-escaping binnen scriptblokken. Escapen in de verkeerde context laat een gat open.
- Escape altijd niet-vertrouwde invoer
- Elke tekenreeks afkomstig van een gebruiker, een upload of een externe API moet geëscaped worden voordat die in je opmaak belandt. Dit is de kern-XSS-verdediging: een payload als <script>alert(1)</script> wordt inerte tekst zodra de punthaken entiteiten zijn.
- Verkies ingebouwd escapen waar het bestaat
- React, Vue en de meeste server-templatingengines escapen geïnterpoleerde tekst automatisch; het instellen van element.textContent escapet ook voor je. Gebruik deze tool voor losse conversies en om de uitvoer te begrijpen — maar leun in applicatiecode op het automatische escapen van het framework in plaats van het zelf te schrijven.
- Laat niet-ASCII ruw op UTF-8-pagina's
- Als je pagina <meta charset="utf-8"> declareert, encodeer accenten en emoji dan niet in entiteiten — ruwe UTF-8 is korter, leesbaarder en even correct. Reserveer "Alle niet-ASCII encoderen" voor de echte verouderde-tekenset-gevallen die het werkelijk vereisen.
- Gebruik de numerieke apostrof in gemengde contexten
- Wanneer de uitvoer door oudere parsers, XML-processors of e-mailclients verwerkt kan worden, verkies de numerieke ' boven de genoemde ' voor het enkele aanhalingsteken. De numerieke vorm wordt overal begrepen; de genoemde niet, en een verdwaalde letterlijke "'" in weergegeven tekst is een veelvoorkomende, vermijdbare fout.
Veelgestelde vragen
Wordt mijn tekst naar jullie server gestuurd als ik die encodeer?
Wat betekent HTML escapen en waarom zou ik dat doen?
Wat is het verschil tussen genoemde, decimale en hex-entiteiten?
Waarom wordt de apostrof als ' en niet als ' geëncodeerd?
Moet ik niet-ASCII-tekens als é, — of 😀 encoderen?
Beschermt HTML escapen me tegen XSS-aanvallen?
Hoe draai ik dit om — entiteiten terug naar tekens?
Verandert encoderen de zichtbare tekst of breekt het mijn lay-out?
Gerelateerde tools
Alle tools bekijken →Base64 decoderen en encoderen online
Encodering en formattering
Base64 decoderen en encoderen direct in je browser. Realtime conversie met volledige UTF-8- en emoji-ondersteuning. 100% privé — geen account nodig.
Base64 naar afbeelding converter
Encodering en formattering
Decodeer een Base64-string of data-URI terug naar een afbeelding in je browser. Bekijk voorbeeld, lees afmetingen & MIME, download als PNG, JPG, GIF, SVG. Geen upload.
CSV naar JSON omzetter
Encodering en formattering
Zet CSV om naar JSON in uw browser. RFC 4180, type-afleiding, headerregel, big-int veilig. 100% privé, geen upload.
.env naar JSON Converter
Encodering en formattering
Plak een .env-bestand, krijg direct JSON. Je wachtwoorden, API-sleutels en tokens verlaten nooit je browser — 100% privé, gratis dotenv-parser.
Gratis HTML-entiteiten decoder — HTML unescapen
Encodering en formattering
Decodeer HTML-entiteiten en unescape HTML online — gratis, geen account, 100% in je browser. Zet genoemde, decimale & hex-referenties terug naar tekens; nooit geüpload.
HTML naar Markdown omzetter
Encodering en formattering
Zet HTML om naar schone Markdown in je browser — GFM-tabellen, takenlijsten en links. Kies ATX/Setext-koppen en inline- of referentielinks. Ideaal om webinhoud te migreren of LLM's te voeden. 100% privé, geen upload.