Zo gebruik je deze tool
- Kies Coderen om tekst veilig te maken voor HTML, of Decoderen om entiteiten weer om te zetten in tekens.
- Kies bij het coderen of letters met accenten en symbolen ongewijzigd moeten blijven of entiteiten moeten worden.
- Typ of plak je tekst; het resultaat wordt direct bijgewerkt.
- Kopieer het resultaat of kies ‘Uitvoer als invoer gebruiken’ om te controleren of de tekst weer naar het origineel wordt gedecodeerd.
Hoe het werkt
In HTML hebben enkele tekens een speciale betekenis: < begint een tag, & begint een entiteit en " of ' beëindigen een attribuutwaarde. Om ze als tekst weer te geven, moeten ze als tekenverwijzingen worden geschreven: < voor <, > voor >, & voor &, " voor " en ' voor '. De apostrof gebruikt de numerieke vorm omdat ' niet is gedefinieerd in HTML 4.
Alle andere tekens, waaronder letters met accent, Chinese tekst en emoji, kunnen rechtstreeks worden geschreven als de pagina wordt opgeslagen en aangeboden als UTF-8, de standaard voor moderne websites. Omzetten naar entiteiten is alleen nodig voor systemen die niet goed met UTF-8 overweg kunnen, zoals sommige oude e-mailsjablonen of databases. Je kunt dan kiezen voor benoemde entiteiten zoals é als er een gangbare naam bestaat (met een numeriek alternatief voor alle andere tekens), of voor numerieke verwijzingen zoals é voor elk teken.
Bij het decoderen wordt de HTML-parser van de browser niet gebruikt. De tool gebruikt een ingebouwde tabel met alle 252 benoemde entiteiten uit HTML 4.01, ' en ongeveer 30 gangbare HTML5-namen, plus decimale en hexadecimale verwijzingen. Numerieke verwijzingen volgen de HTML5-regels: �, surrogaatwaarden en waarden boven U+10FFFF worden het vervangingsteken �, en waarden 128–159 worden geïnterpreteerd als Windows-1252, waardoor – een en-streepje wordt. Enkele verouderde namen, zoals & en ©, worden ook zonder afsluitende puntkomma geaccepteerd, net als in browsers. HTML5 definieert meer dan 2.000 namen; zeldzame namen die niet in de tabel staan, blijven ongewijzigd en worden vermeld.
Tekst escapen voordat je deze in HTML invoegt, is een belangrijke bescherming tegen cross-site scripting (XSS), maar is alleen correct voor inhoud van elementen en waarden van aanhalingstekens voorziene attributen. Voor tekst in een <script>-blok, een style-attribuut of een URL is een andere manier van escapen nodig.
Voorbeelden
Code weergeven op een webpagina
Als je <div class="box"> als tekst in een blogbericht wilt weergeven, codeer je dit als <div class="box">. De browser toont de oorspronkelijke tag in plaats van een element aan te maken.
Tekst geschikt maken voor een oude e-mailsjabloon
Met ‘Benoemde entiteiten waar beschikbaar’ wordt ‘Café – 5 €’ omgezet in Café – 5 €. Dit wordt correct weergegeven, zelfs als de e-mail met een andere tekencodering dan UTF-8 wordt verzonden.
Geschraapte of geëxporteerde tekst opschonen
Een CMS-export bevat Fish & Chips – £9. Decoderen geeft Fish & Chips – £9, klaar om in een spreadsheet te plakken.
Veelgestelde vragen
Welke tekens moeten in HTML worden ge-escaped?
In elementinhoud moeten & en < worden ge-escaped (> wordt ook aanbevolen). Escape in attribuutwaarden ook het aanhalingsteken dat de waarde omsluit. Alle vijf tekens (& < > " ') overal escapen is de eenvoudige, veilige regel die deze tool volgt.
Wat is het verschil tussen benoemde en numerieke entiteiten?
Benoemde entiteiten zoals © zijn makkelijker leesbaar, maar bestaan slechts voor een beperkte reeks tekens. Numerieke verwijzingen zoals © (decimaal) of © (hexadecimaal) werken voor elk Unicode-teken, inclusief emoji.
Waarom wordt gedecodeerd tot iets dat eruitziet als een spatie?
is een vaste spatie (U+00A0). Deze ziet eruit als een gewone spatie, maar voorkomt een regeleinde en wordt niet samengevoegd door HTML. Het is een ander teken dan een gewone spatie, wat belangrijk is bij het vergelijken of doorzoeken van tekst.
Moet ik letters met accenten, zoals é, coderen?
Niet als je pagina UTF-8 gebruikt (<meta charset="utf-8">), zoals vrijwel alle moderne pagina's. Laat de standaardinstelling staan; dan worden alleen de vijf speciale tekens ge-escaped.
Is coderen voldoende om XSS te voorkomen?
Dit is voldoende voor niet-vertrouwde tekst die in HTML-elementinhoud of tussen aanhalingstekens geplaatste attribuutwaarden wordt ingevoegd. Het is niet voldoende voor JavaScript-code, CSS, attributen zonder aanhalingstekens of URL's zoals href="javascript:…"; daarvoor is een contextspecifieke aanpak nodig.
Privacy
Coderen en decoderen gebeurt met gewone tekenreeksen in je browser; je tekst wordt nooit als HTML weergegeven, geüpload, opgeslagen of opgenomen in analyses.