HTML Entity Decoder
Decode named, decimal and hexadecimal HTML entities back into the characters they represent, so escaped markup becomes readable again.
How it works
Three entity forms are recognised: named ones such as & and , decimal ones such as é, and hexadecimal ones such as é. All three are converted back to the character they stand for.
Anything that looks like an entity but is not recognised is left exactly as it is, rather than being silently deleted — so you can see what did not decode instead of losing it.
The formula
Named
& → & < → < → non-breaking space
Decimal
é → é
Hexadecimal
é → é
Worked examples
| Scenario | Working | Result |
|---|---|---|
| <p>Hi</p> | Decode | <p>Hi</p> |
| Tom & Jerry | Decode | Tom & Jerry |
| AB | Decimal and hex | AB |
When you'd use it
- Reading escaped markup pasted out of a log or database
- Cleaning up content exported from a CMS
- Fixing text that shows &amp; where an ampersand belongs
- Turning an escaped email template back into readable HTML
Common questions
Why does my text show &amp;?
It was escaped twice. Decode it twice and you will get a single ampersand — and then look for the double-encoding in the pipeline that produced it.
What happens to entities it does not know?
They are left untouched. That is deliberate: silently dropping an unrecognised entity would lose information and hide the problem.
Is the decoded HTML rendered?
No. The result is shown as plain text, never inserted into the page, so decoding hostile markup here is safe.

