Text
HTML Entity Decoder
Decode HTML character entities (named and numeric) back to plain text.
Written by Jay Sudha · Published · Last updated
Press ⌘ Enter to run
9 words · 1 line
Common uses
- Inspect escaped HTML snippets
- Convert legacy data exports
Limitations
- Each reference needs its closing semicolon (& not &)
When decoding entities is the right move
This tool turns HTML character entities back into the plain characters they stand for. If you have copied text out of page source, an API response, an email template, an RSS or XML feed, or a database export and it shows up peppered with sequences like &, <, >, ", ' and , or numeric codes such as €, this reverses that escaping so the underlying ampersands, angle brackets, quotes and symbols read normally again.
It fits a handful of concrete jobs. Developers use it to sanity-check scraped or logged markup and to read what a serialized string actually contains. Content and support staff use it to clean entity-laden snippets before pasting into a CMS, a help-desk reply, or a spreadsheet cell. Writers and students use it to recover quoted text lifted from a web page so the apostrophes and dashes stop appearing as code.
Because it strips the escaping rather than the tags, it is also a useful first pass before further editing: decode the entities, then deal with any remaining HTML separately. It runs entirely in your browser, so pasting in a private email template or an internal data export does not send that text anywhere.
How the decoder runs and what it recognizes
The flow is paste-and-run. Type or paste your text into the input box and press Run (or Command/Control + Enter); the decoded result appears in the output panel. There is no upload step. Use Copy to put the result on your clipboard or Download to save it as a .txt file; Reset brings back the sample text.
It recognizes three kinds of references. Decimal numeric entities like € and hexadecimal ones like € are resolved to their Unicode characters across the full code-point range. Named entities are resolved with your browser's own HTML entity table, so &, <, " and work, and so do less common names such as ©, —, é and ™. Anything matching that pattern is converted in place, and the surrounding text is left untouched.
What it does not do is just as important. It is a decoder only, so it will not re-encode text or strip HTML tags. A name that is not a real HTML entity, such as &foo;, is left exactly as written rather than guessed at, and so is a numeric reference beyond the last Unicode code point.
What survives untouched, and why
If something that looks like an entity is still in the output, check its spelling and its closing semicolon. Entity names are case-sensitive (É and é are different letters), a reference with no closing semicolon is left as written, and so is a stray ampersand that is not part of an entity at all. Leaving these alone is deliberate: guessing would change your text.
A second pitfall is double-encoded input, where &lt; was meant to become <. A single pass turns &lt; into <, not <; run the result through once more to finish unwinding it. Watch in particular: it decodes to a non-breaking space that looks exactly like a normal one, so it can hide inside text and quietly affect later trimming, search, or column splitting.
Finally, this is text, not rendering. Decoding the entities does not render or validate the HTML, and it does not remove tags, scripts, or styling. Treat the output as raw text to inspect or paste onward, not as a cleaned, safe-to-publish fragment.
Look for any &…; sequences left behind
Skim the output for any remaining &…; sequences. A leftover &something; usually means a misspelt or made-up name; a bare & on its own is fine and expected. Confirm that quotes, apostrophes, angle brackets and currency or accented characters now read as real characters, and check that line breaks and spacing match what you intended, since decoded spaces look identical to ordinary ones.
If the source was double-encoded, verify you ran enough passes to fully unwind it, and spot-check a few specific symbols you know should be present. When you copy or download, paste a sample into the destination to make sure no entity slipped through and that the encoding survived the move.
For anything official, financial, legal, or otherwise consequential, verify the decoded text manually against the original source character by character before using it. This tool helps you read and clean text quickly, but it is not a substitute for a careful human check on documents that carry weight.
Frequently asked questions
All standard HTML named entities, from &, < and to ©, — and é, plus numeric entities in decimal (©) and hexadecimal (©) form.
A name that isn't a real HTML entity, such as &foo;, is left untouched, so the original text is preserved rather than silently dropped.
For inspecting escaped HTML snippets or cleaning up data exports where characters were stored as entities and you want the plain text back.
No. Decoding runs entirely in your browser.
Related text tools
Tool last reviewed: September 27, 2026 · Report a problem