"category": "dev-utility",
HTML Unescape Tool
"tldr": Paste text full of &, <, — and read it as plain text - named, decimal, and hex entities all decoded.
Decode HTML entities back into readable characters: named entities (&, ©, —), decimal references (—), and hex references (🎉) all become their real characters, emoji included.
Entity-encoded text shows up wherever HTML was flattened into data: scraped pages, RSS feeds, CMS exports, and APIs that double-encode. When your UI displays "Fish &amp; Chips", this is the tool that shows you how many layers deep the encoding goes.
How to decode HTML entities
- 1Paste the entity-encoded text.
- 2Named (&), decimal (—), and hex (🎉) entities are decoded; unknown sequences pass through untouched.
- 3If the output still contains entities, the source was double-encoded - run it again.
- 4Copy the clean text.
Convert HTML entities to Text in code
import html
html.unescape("Fish & Chips — ©2026")
# 'Fish & Chips — ©2026'const unescapeHtml = (s) => {
const el = document.createElement("textarea");
el.innerHTML = s;
return el.value;
};Frequently asked questions
Why does my text say &amp; - what happened?
Double encoding: "&" was escaped to "&", then that string was escaped again, turning its & into & - yielding &amp;. Each pipeline stage escaped without checking. Decode twice here to read it; fix it upstream by escaping exactly once, at final output.
Will decoding scraped content make it safe to display?
The opposite - decoding turns inert <script> text back into live <script> markup. Decode to *read* or process text, but if you re-display user-derived content in HTML, escape it again at output. Decoding is for humans and data pipelines, not a sanitizer.
Which named entities are supported?
The ones that appear in real-world data: the XML five plus the common typography and symbol set (dashes, quotes, ©®™, currency, «», °±×÷µ…). All numeric references work universally, so anything exotic still decodes via &#NNNN; form.
Last updated:
You might also need
Free and in-browser, like everything on JSON Console. Browse all tools →