HTML Entity Decode
Decode HTML entities back to plain text. Handles named entities (&, ©, etc.), decimal numeric (A), and hex numeric (A). Uses the browser's native entity table — comprehensive.
Entities in, text out
Decoding replaces every entity (named, decimal, or hex) with the literal character it represents — the inverse of encoding.
<div>Hello &amp; "world"</div>
<div>Hello & "world"</div>
What you'll use this for
Decode entity-escaped text from scraped pages, form submissions, or template output so you can read or further process it.
Scraping
Decode entities in scraped page content.
Form submissions
Decode submitted form data that escaped through HTML.
Email parsing
Read entity-escaped strings from HTML emails.
Debugging templates
See what your template engine produced.
How to decode HTML entities
Paste entity-encoded text
Drop it into the left editor — named (&), decimal (&#NNN;) and hex (&#xNN;) entities are all handled.
Choose mode
Loose mode passes unknown sequences through verbatim. Strict mode errors on any unknown named entity.
Click Decode
Or leave auto-decode on for live updates. Runs locally — no upload.
Copy or download
Copy the decoded text to clipboard or save it as .txt.
Frequently asked questions
All ~250 named entities (using the browser's native HTML entity table) plus arbitrary numeric (&#NNN;) and hex (&#xNN;).
The five XML-standard entities (amp lt gt quot apos) all work. Most named HTML entities are HTML-specific.
Yes.
Loose mode passes them through unchanged. Strict mode raises an error.
About HTML entity decoding
HTML entities come in three forms. Decoding reverses all three back to literal characters: named entities map through the browser's built-in HTML5 entity table, while numeric references — decimal (A) and hex (A) — convert directly to their Unicode code points.
Entity types this tool handles
- Named —
&,<,©,…, and ~250 others defined in the HTML5 spec. - Decimal numeric —
&#NNN;for any Unicode code point. - Hex numeric —
&#xNN;(or&#XNN;), case-insensitive on the hex digits.
Browser-native decoder
- Numeric entities are converted with
String.fromCodePoint— full Unicode, including astral plane characters. - Named entities are decoded via a hidden
textarea, which delegates to the browser's HTML parser. That gives complete, spec-current entity coverage without shipping a table. - Strict mode throws when an
&name;-shaped sequence isn't recognised — useful for catching typos.