Decode HTML entities to text
Turn &, © and ©-style HTML entities back into plain text in your browser — named, decimal and hex references all understood. Free, nothing uploaded.
Paste escaped HTML and read the text behind it: & back to &, é to é, and © and © both to ©. The common named entities (accents, punctuation, Greek, math and symbols), decimal references and hex references are all decoded — numeric references reach full Unicode, so 😀 comes back as 😀.
This is the fix for copy that arrived escaped from a CMS, API response or email: strings full of <p> that should be <p>, or &amp; where a single ampersand belongs. Decode once for singly-escaped text, twice for double-escaped — each pass consumes one layer.
Malformed references and unknown names pass through untouched — a converter, not a guesser — so you can see exactly what was and wasn't valid input. Runs entirely in your browser tab.
Frequently asked questions
- Why do I still see entities after decoding?
- Either they're genuinely unknown names (typos like &npsp; pass through untouched by design) or the text was escaped twice — &amp; decodes once to &, and a second pass turns it into &. Decode again for double-escaped content.
- Which entities are supported?
- The classic HTML named set — around two hundred covering Latin-1 letters, punctuation, arrows, Greek letters, math and currency — plus every decimal and hex numeric reference across the Unicode range.
- Is decoding safe?
- The output is plain text in your browser — nothing is executed and nothing is uploaded. But don't render decoded HTML from untrusted sources without re-sanitizing: decoding intentionally re-creates characters like < that can form markup.