Text
HTML Entity Decoder
Decode HTML character entities (named and numeric) back to plain text.
Press ⌘ Enter to run
21 words · 3 lines
How this tool handles files
- Processing
- In your browser, on-device
- Storage
- Nothing stored
- Output
- A file you download
- Your responsibility
- Review before official use
- Runs in your browser. Your file is processed on your own device and, on this site, is not uploaded to our servers.
- Nothing is stored. Your file and its output are gone the moment you close or reload the page.
- Review sensitive files (bank, ID, medical) and check the output before sharing it.
Every tool on FormatOS runs in your browser. Read our Privacy Policy and File Handling Policy.
Common uses
- Inspect escaped HTML snippets
- Convert legacy data exports
Limitations
- Supports common named entities
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 &, <, >, ", ', 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-read. Type or paste your text into the input box and the decoded result appears in the output panel as you go; there is no upload step and no Convert button to wait on. When you are happy, use Copy to put the result on your clipboard or Download to save it as a .txt file, and Reset to clear and start over.
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 handled for the common set: &, <, >, ", ' 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. The named-entity list is deliberately small, so less common names such as ©, —, é or ™ are not in the table and will be left exactly as written rather than guessed at. For those, the numeric form (for example ©) decodes reliably.
Where it trips people up
The most common surprise is an unfamiliar named entity surviving untouched. If — or -style names you expected to vanish are still in the output, that name is outside the supported set; the safest fix is to use the numeric equivalent, which always resolves. A malformed reference with no closing semicolon, or a stray ampersand that is not part of an entity at all, is intentionally left as-is rather than mangled.
A second pitfall is double-encoded input, where < should become <. A single pass turns < into <, not <; run the result through once more to finish unwinding it. Watch in particular: it decodes to a normal space visually, 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.
Checking the result before you rely on it
Skim the output for any remaining & sequences. A leftover &something; usually means an unsupported named entity, which you can re-run as a numeric reference; 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
Common named entities such as &, <, >, ", ', and , plus numeric entities in decimal (©) and hexadecimal (©) form.
An entity that isn't in the recognised set 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: June 30, 2026 · Report a problem