Gratis HTML-entiteiten decoder — HTML unescapen
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.
Je tekst wordt lokaal in je browser gedecodeerd en nooit geüpload, gelogd of opgeslagen. Hij blijft op dit apparaat.
Opties · Decoderingsopties
Wat is HTML-entiteitendecodering?
HTML-entiteitendecodering — ook wel HTML unescapen genoemd — is het proces waarbij tekenreferenties terug omgezet worden naar de tekens die ze vertegenwoordigen. Waar encoderen een letterlijke < vervangt door de entiteit < zodat een browser die als tekst toont, doet decoderen het omgekeerde: het scant een tekenreeks op referenties als <, &, <, > of © en vervangt elk door het werkelijke teken (<, &, <, >, ©). Het is de bewerking die je uitvoert wanneer je opmaak hebt die in geëscapede vorm opgeslagen of verzonden werd en je de echte tekst terug nodig hebt — om die te lezen, te bewerken, aan een ander programma te geven of uit te zoeken waarom een pagina < rendert in plaats van <.
Het is de moeite waard om precies te zijn over wat deze tool doet. Hij decodeert entiteiten naar tekens; hij herformatteert of valideert de opmaak niet. Wil je een geëscapede tekenreeks nemen en haar letterlijke tekens herstellen, dan is dit de juiste tool. Om de andere kant op te gaan en tekens in entiteiten om te zetten, gebruik je de HTML-entiteiten encoder; en om een blok HTML in te springen en netjes te maken, gebruik je de HTML-formatter. Encoderen en decoderen zijn exacte inversen, dus een tekenreeks die door de encoder en terug door de decoder gestuurd wordt, komt ongewijzigd terug.
Er zijn drie soorten referentie die de decoder moet begrijpen, en hij verwerkt ze alle. Een genoemde referentie gebruikt een gedefinieerd label (< voor <, © voor ©, — voor —); een decimale numerieke referentie schrijft het Unicode-codepunt in grondtal 10 (< voor <); en een hexadecimale numerieke referentie schrijft hetzelfde codepunt in grondtal 16 (< voor <), passend bij de U+XXXX-notatie van de Unicode-standaard. Een robuuste decoder accepteert ze alle, in elke mix, omdat verschillende encoders verschillende vormen weergeven. De tabel hieronder toont de referenties die je het vaakst zult tegenkomen en het teken waarnaar elk decodeert:
| Entiteit (genoemd) | Decimaal | Hex | Decodeert naar | |----------------|---------|-----|------------| | < | < | < | < | | > | > | > | > | | & | & | & | & | | " | " | " | " | | ' | ' | ' | ' | | |   |   | (vaste spatie) | | © | © | © | © | | ® | ® | ® | ® | | ™ | ™ | ™ | ™ | | € | € | € | € | | £ | £ | £ | £ | | — | — | — | — | | – | – | – | – | | … | … | … | … | | 😀 | 😀 | 😀 | 😀 |
Twee gedragingen onderscheiden een grondige decoder. Ten eerste reconstrueert hij astrale tekens — alles boven U+FFFF, inclusief de meeste emoji — uit hun numerieke referenties in plaats van een kapot half teken te produceren; 😀 wordt correct 😀. Ten tweede volgt hij de soepele parsing van de browser voor de kleine set verouderde genoemde entiteiten die historisch zonder afsluitende puntkomma verschenen, zodat © 2026 nog steeds naar © 2026 decodeert, ook al zou strikte XML het afwijzen. Deze tool doet beide en komt overeen met het gedrag van de veelgebruikte he-bibliotheek, zodat zijn uitvoer overeenstemt met wat een echte browser zou renderen.
Een waarschuwing die bij elke decoder hoort: gedecodeerde tekst is per definitie ge-unescaped. Decoderen is de inverse van het escapen dat pagina's tegen cross-site scripting beschermt, dus een gedecodeerde tekenreeks met een <script>-tag of een event-handler is opnieuw actieve, gevaarlijke opmaak. Decodeer nooit niet-vertrouwde invoer en voeg het dan met innerHTML in een pagina in — dat heropent precies het gat dat encoderen moest dichten. Decodeer wanneer je de ruwe tekens nodig hebt om te lezen, bewerken of op te slaan; als het resultaat terug in HTML gerenderd wordt, escape het dan eerst opnieuw in zijn doelcontext. En omdat elke byte in je browser verwerkt wordt, kruisen de geëscapede tekenreeksen die je decodeert — zelfs een privégegeven of een niet-gepubliceerd concept — nooit het netwerk. Voor naburige conversies handelt de URL-encoder/-decoder percent-encodering af en Base64 encoderen/decoderen binair-veilig transport.
// Decoding is the inverse of escaping. The classic round-trip:
// < → < > → > & → & " → " ' → '
// Browser — the safest decoder is the platform itself. Use textarea, NOT innerHTML on a live node,
// so the decoded markup is never executed.
function decodeHtml(str) {
const ta = document.createElement('textarea');
ta.innerHTML = str; // the parser resolves entities into text
return ta.value; // .value is plain text — no script runs
}
decodeHtml('<div> & ©'); // → '<div> & ©'
decodeHtml('<>'); // → '<>'
decodeHtml('😀'); // → '😀'
decodeHtml('© 2026'); // → '© 2026' (lenient, no semicolon)
// ---------------------------------------------------------------
// SECURITY: decoded text is unescaped. Never do this with untrusted input:
// el.innerHTML = decodeHtml(userInput); // ❌ reopens the XSS hole
// If the decoded value must be displayed, re-escape it in its destination context first,
// or assign it as text:
// el.textContent = decodeHtml(userInput); // ✅ shown as literal text
// ---------------------------------------------------------------
// Node.js (no DOM) — use a tested library such as he:
// import { decode } from 'he';
// decode('<div> & ©'); // → '<div> & ©' Belangrijkste functies
Decodeert genoemde, decimale en hex-referenties
Lost de volledige HTML5-set genoemde entiteiten op (<, ©, —), decimale numerieke referenties (<) en hexadecimale referenties (<) in elke combinatie, exact zoals een browser zou doen — zodat hij omdraait wat een encoder ook produceerde.
Verwerkt emoji en astrale tekens
Numerieke referenties boven U+FFFF worden gereconstrueerd tot hun volledige codepunt, zodat 😀 decodeert naar 😀 in plaats van een kapotte surrogaat. Zeldzame CJK-ideogrammen en wiskundige symbolen decoderen ook getrouw.
Soepele parsing van verouderde entiteiten
Volgt de achterwaarts compatibele regels van de browser voor genoemde entiteiten zonder afsluitende puntkomma, zodat verouderde of slordige opmaak als © 2026 nog steeds naar © 2026 decodeert waar een strikte parser het kapot zou laten.
Live, direct decoderen
De uitvoer wordt bijgewerkt terwijl je typt — geen verzendknop, geen retourlatentie. Plak een groot geëscaped blok en de herstelde tekst verschijnt onmiddellijk, klaar om te kopiëren.
Ingebouwde entiteit-snelreferentie
Een referentietabel die de meest voorkomende entiteiten — de gereserveerde vijf plus ©, ®, ™, €, —, en meer — koppelt aan hun tekens staat direct op de pagina, zodat je nooit elders een entiteit hoeft op te zoeken.
Wissel met één klik naar de encoder
Richting omwisselen springt direct naar de HTML-entiteiten encoder 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 decoderen gebeurt op je apparaat met JavaScript — geen netwerkverzoeken, geen logging, geen opslag, verifieerbaar in DevTools → Netwerk. Privé-databasefragmenten, e-mailinhoud 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 beveiligingsadvies duidelijk zijn waar je team ook werkt.
Uitgewerkte voorbeelden
Een mix van genoemde entiteiten decoderen
<div> & ©
<div> & ©
De decoder lost elke genoemde referentie op naar het teken dat ze vertegenwoordigt: < wordt <, > wordt >, & wordt & en © wordt het copyrightteken ©. Dit is het dagelijkse geval — een tekenreeks die in geëscapede vorm opgeslagen of verzonden werd terugzetten naar de echte tekens, zodat je de opmaak kunt lezen, bewerken of opnieuw verwerken. Decoderen is de exacte inverse van encoderen, dus een tekenreeks die door de encoder en terug gehaald wordt, komt ongewijzigd aan.
Decimale en hexadecimale numerieke referenties decoderen
<>
<>
Numerieke tekenreferenties werken in beide grondtallen: < is de decimale vorm van codepunt 60, oftewel <, en > is de hexadecimale vorm van codepunt 62, oftewel >. De decoder verwerkt decimale (&#NNN;) en hex (&#xHHH;) referenties uitwisselbaar en lost elk op naar het Unicode-teken. Dit is belangrijk omdat encoders het oneens zijn over welke vorm ze weergeven — sommige verkiezen decimaal, andere hex — en een robuuste decoder moet beide accepteren.
Een verouderde entiteit zonder puntkomma decoderen
© 2026
© 2026
Oudere HTML stond een kleine set genoemde entiteiten toe zonder afsluitende puntkomma, en browsers lossen ze nog steeds op voor achterwaartse compatibiliteit — © 2026 rendert als © 2026. Deze decoder volgt dezelfde soepele parseerregels, dus hij herstelt het bedoelde teken uit slordige of verouderde opmaak die een strikte parser onaangeroerd zou laten. Debug je tekst die een verdwaalde © toont, dan is dit waarom.
Een emoji uit zijn hex-referentie decoderen
😀
😀
Numerieke referenties zijn niet beperkt tot het Basic Multilingual Plane — 😀 is de hexadecimale referentie voor codepunt U+1F600, de grijnzende-gezicht-emoji 😀. De decoder reconstrueert astrale tekens (alles boven U+FFFF) correct uit hun numerieke referenties, zodat emoji, zeldzame CJK-ideogrammen en wiskundige symbolen allemaal getrouw decoderen in plaats van te veranderen in een kapotte surrogaat of een vervangingsglyph.
Een geëscapede attribuuttekenreeks decoderen
<a href="x">Tom & Jerry's</a>
<a href="x">Tom & Jerry's</a>
Dit is een volledige heen-en-terugcyclus van het paradevoorbeeld van de encoder. " lost op naar een dubbel aanhalingsteken, ' (de compatibiliteitsveilige numerieke apostrof) lost op naar ', en de punthaak- en ampersand-entiteiten lossen op naar hun letterlijke tekens, waarmee het oorspronkelijke Tom & Jerry's exact gereconstrueerd wordt. Omdat de decoder genoemde, decimale en hex-referenties in elke combinatie accepteert, draait hij om wat een encoder ook produceerde, ongeacht welke entiteitstijl gebruikt werd.
Zo gebruik je de HTML-entiteiten decoder
- 1
Plak de geëscapede tekenreeks
Zet de tekst vol HTML-entiteiten in het invoervak. De gedecodeerde tekens worden live bijgewerkt terwijl je typt — er is geen verzendknop en er wordt niets ergens heen gestuurd.
- 2
Lees het gedecodeerde resultaat
Genoemde, decimale en hexadecimale referenties lossen allemaal automatisch op naar de tekens die ze vertegenwoordigen, inclusief emoji en andere astrale codepunten. Er is geen notatiekeuze nodig — de decoder detecteert het type van elke referentie.
- 3
Kopieer de gedecodeerde tekst
Klik op Kopiëren om de herstelde tekens op je klembord te zetten, klaar om in een editor, een database of een andere tool te plakken. Wissen stelt beide vensters opnieuw in voor de volgende tekenreeks.
- 4
Escape opnieuw voordat je niet-vertrouwde tekst weer toont
Als de gedecodeerde uitvoer terug in een webpagina gerenderd wordt en een deel ervan uit een niet-vertrouwde bron komt, escape het dan eerst opnieuw met de encoder om geen XSS-gat te heropenen.
- 5
In plaats daarvan encoderen? Wissel de richting
Gebruik Richting omwisselen om over te schakelen naar de HTML-entiteiten encoder wanneer je ruwe tekens in entiteiten wilt omzetten.
Veelgemaakte fouten bij HTML-decoderen
Gedecodeerde niet-vertrouwde invoer met innerHTML gerenderd
Decoderen unescapet de tekst, dus een gedecodeerde <script>-tag is weer actieve opmaak. Die via innerHTML invoegen voert hem uit — een schoolvoorbeeld van een XSS-gat. Escape gedecodeerde niet-vertrouwde tekst opnieuw, of gebruik textContent.
el.innerHTML = decode(userInput) → script runs (XSS)
el.textContent = decode(userInput) → shown as text
Slechts één keer gedecodeerd terwijl de tekst dubbel-geëncodeerd was
Dubbel-geëncodeerde tekst heeft twee decode-passes nodig. < één keer decoderen levert < op, niet <. Decodeer opnieuw — en herstel de pijplijn zodat die om te beginnen nooit dubbel-encodeert.
&lt; decoded once → < (still an entity)
&lt; decoded twice → <
HTML-decodering verward met URL- of Base64-decodering
Entiteiten, percent-encodering en base64 zijn verschillende schema's. Een HTML-decoder zet %20 niet om in een spatie en decodeert geen base64-blob. Gebruik de passende tool voor elke encoderingslaag.
HTML-decode "%3Cdiv%3E" → unchanged, still percent-encoded
URL-decode "%3Cdiv%3E" → <div>
Een regex gebruikt die numerieke of astrale referenties mist
Een zelfgeschreven regex voor genoemde entiteiten slaat <, > en emoji als 😀 stilletjes over en laat ze in de uitvoer. Gebruik de browser-parser of een geteste bibliotheek die alle referentievormen dekt.
regex for &name; only → 😀 left undecoded
full decoder → 😀 becomes 😀
Uitvoer als mojibake weergegeven na het decoderen
é decoderen geeft de echte é, maar als de ontvangende pagina of het bestand niet als UTF-8 geserveerd wordt, corrumpeert het teken tot onzin. Stel de tekenset in op UTF-8 voordat je gedecodeerde tekst wegschrijft.
decoded é into a Latin-1 file → é mojibake
decoded é into a UTF-8 file → é
Strikte parsing aangenomen en verouderde entiteiten gemist
Een strikte XML-parser negeert entiteiten zonder puntkomma als © en laat ze letterlijk. Browsers lossen ze op, dus een getrouwe decoder moet dat ook — anders wijkt je uitvoer af van wat gebruikers zien.
strict parse of "© 2026" → © 2026 literal
lenient parse of "© 2026" → © 2026
Wie gebruikt deze tool
- Opmaak lezen die in geëscapede vorm opgeslagen is
- Een HTML-fragment uit een database, een log of een JSON-veld gehaald waar het als <div>… opgeslagen was? Decodeer het om de echte opmaak te zien en te bewerken in plaats van te turen naar een muur van entiteiten.
- Dubbel-geëncodeerde tekst debuggen
- Zie je < op een live-pagina waar < zou moeten staan? Plak het hier om te bevestigen dat het dubbel-geëncodeerd is, decodeer het twee keer om het origineel te herstellen, en traceer de dubbele escaping terug naar zijn bron in je pijplijn.
- Platte tekst uit HTML-fragmenten halen
- De voor mensen leesbare tekst nodig uit een geëscapede e-mailtekst of CMS-veld? Decodeer de entiteiten om de werkelijke tekens te herstellen voordat je de inhoud indexeert, doorzoekt of elders weergeeft.
- Tekens herstellen uit gescrapete of geëxporteerde data
- Exports en scrapers leveren inhoud vaak met entiteiten intact. Decodeer &, é en consorten terug naar hun tekens zodat de data schoon is voordat ze je eigen systemen binnenkomt.
- Verifiëren dat de uitvoer van een encoder heen en terug klopt
- Na het escapen van een tekenreeks met de encoder, decodeer je die hier om te bevestigen dat je het origineel ongewijzigd terugkrijgt. Een schone heen-en-terugcyclus bewijst dat je escaping correct en omkeerbaar is.
- Een raadselachtige entiteit oplossen
- Vastgelopen op wat ™ of … eigenlijk is? Plak het in en lees het gedecodeerde teken, of raadpleeg de ingebouwde snelreferentietabel — geen noodzaak de entiteitentabellen uit het hoofd te leren.
- Verouderde opmaak veilig decoderen
- Werk je met oude HTML die entiteiten zonder puntkomma als © of   inconsistent gebruikt? De soepele decoder herstelt de bedoelde tekens zoals een echte browser zou doen, zodat je opschoning overeenkomt met wat gebruikers daadwerkelijk zien.
Hoe de decoder werkt
- Lost alle drie referentievormen op
- De decoder matcht genoemde referenties tegen de volledige HTML5-tabel van genoemde tekens, parseert decimale referenties (&#NNN;) als codepunten in grondtal 10, en parseert hexadecimale referenties (&#xHHH;) als codepunten in grondtal 16. Elk lost op naar zijn Unicode-teken; de drie vormen zijn bij invoer uitwisselbaar.
- Reconstructie van astrale tekens
- Numerieke referenties met een codepunt boven U+FFFF — de meeste emoji en veel symbolen — worden omgezet naar het juiste surrogaatpaar zodat het teken als één glyph rendert. 😀 wordt 😀, niet twee kapotte halve tekens.
- Soepele afhandeling van verouderde entiteiten
- Een gedefinieerde subset van genoemde entiteiten verscheen historisch zonder afsluitende puntkomma, en browsers lossen ze nog steeds op. De decoder weerspiegelt dit gedrag — © 2026 levert © 2026 — passend bij de weergave van een echte browser in plaats van een strikte XML-parser.
- Idempotent op platte tekst
- Tekens die geen deel uitmaken van een herkende referentie, inclusief ruwe niet-ASCII-tekst die al in de invoer aanwezig is, gaan ongemoeid door. Een tekenreeks zonder entiteiten decoderen geeft die ongewijzigd terug, dus de bewerking is veilig om op gemengde inhoud te draaien.
- Gedecodeerde uitvoer is ge-unescaped
- Decoderen is de inverse van XSS-beschermend escapen, dus het resultaat is opnieuw actieve opmaak. De tool maakt dit zichtbaar zodat je geen gedecodeerde niet-vertrouwde tekst met innerHTML in een pagina invoegt — escape die opnieuw in zijn doelcontext voor het renderen.
- Browser-lokaal, nul netwerk
- Het decoderen draait synchroon in JavaScript op de hoofdthread; er is geen API-aanroep, geen server-retour 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 unescapen
- Render gedecodeerde niet-vertrouwde tekst nooit rechtstreeks
- Gedecodeerde uitvoer is ge-unescapede opmaak. Kwam een deel ervan van een gebruiker of een externe bron, escape het dan opnieuw voordat je het in een pagina invoegt, of wijs het toe via textContent in plaats van innerHTML. Dit overslaan heropent het cross-site-scripting-gat dat escapen moest dichten.
- Decodeer in omgekeerde volgorde van encoderen
- Een waarde kan HTML-geëncodeerd, dan URL-geëncodeerd, dan Base64-geëncodeerd zijn. Maak de lagen ongedaan in de omgekeerde volgorde waarin ze toegepast werden — en gebruik de passende tool voor elk: deze voor entiteiten, de URL-decoder voor percent-encodering, de Base64-tool voor base64.
- Decodeer één keer, niet reflexmatig
- Als één decode-pass zichtbare entiteiten als < achterlaat, was de invoer dubbel-geëncodeerd — decodeer opnieuw om het origineel te herstellen, en herstel dan de stroomopwaartse pijplijn zodat tekst precies één keer geëscaped wordt. Loop niet blindelings; begrijp waarom de extra laag bestaat.
- Serveer het resultaat als UTF-8
- Het decoderen van numerieke referenties levert echte Unicode-tekens op — accenten, symbolen, emoji. Zorg dat de pagina, het bestand of het veld dat de gedecodeerde tekst ontvangt UTF-8 is, anders worden die herstelde tekens als mojibake weergegeven.
- Verkies een geteste bibliotheek in applicatiecode
- Voor losse conversies is deze tool ideaal; decodeer in productie met een goed geteste bibliotheek (he in Node, de eigen parser van de browser via een losse textarea) in plaats van een zelfgeschreven regex, die routinematig numerieke referenties, astrale tekens en verouderde entiteiten mist.
Veelgestelde vragen
Wordt mijn tekst naar jullie server gestuurd als ik die decodeer?
Wat betekent HTML decoderen of unescapen?
Welke soorten entiteiten kan deze decoder aan?
Waarom toont mijn tekst < in plaats van
Is de gedecodeerde uitvoer veilig om terug in een pagina te zetten?
Verwerkt decoderen niet-ASCII-tekens en emoji correct?
Hoe encodeer ik tekst terug naar entiteiten?
Is dit hetzelfde als URL-decodering of Base64-decodering?
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 encoder — HTML escapen
Encodering en formattering
Encodeer HTML-entiteiten en escape speciale tekens (< > & " ') online — gratis, geen account, 100% in je browser. Genoemde, decimale of hex-uitvoer; 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.