Turn HTML entities back into characters – named, decimal and hexadecimal – with a repeat mode for text that was escaped twice.
Show calculation steps
Processed privately in your browser — nothing you paste is uploaded, logged or stored.
How to use the HTML Entity Decoder
- Paste the text containing entities.
- Turn on "Decode repeatedly" if you can see sequences such as < that indicate double escaping.
- Click "Decode entities" and read the notes for any unknown or malformed references.
Frequently asked questions
Why did an entity survive decoding unchanged?
Because the name is not recognised. HTML entity names are case-sensitive and only a defined set exists, so a typo, an invented name, or an XML-only construct will be left alone and reported in the notes rather than guessed at.
What causes text like "©" to appear on a website?
Double escaping: content that already contained entities was escaped a second time by a template or CMS. Each decoding pass removes one layer, and the repeat option unwinds the whole chain.
Is a missing semicolon acceptable?
Browsers tolerate it in some historical cases, and this decoder does too – but it reports each instance, because valid markup always terminates an entity with a semicolon and relying on the tolerance is fragile.
Does decoding entities make text dangerous to display?
The decoded text is returned as inert text and is never executed here. But if you take a decoded string containing angle brackets and insert it into a live page, it becomes markup again. Decode for inspection; re-encode before rendering.