HTML Decode
Turn HTML entities back into normal characters.
How to use the HTML Decode
- Paste text containing HTML entities.
- Copy the decoded characters.
About the HTML Decode
Decoding turns entities back into the characters they stand for: & into an ampersand, < into a less-than sign, ' into an apostrophe. It is what you need when content arrives escaped — or double-escaped — from a database, a feed, an API or a scraped page, and you want to see the original text.
Rather than a hand-written lookup table, this tool hands the job to your browser’s own HTML parser, so it knows the complete named entity set — , ©, é and hundreds more — along with decimal numeric references like — and hexadecimal ones like —. Named and numeric forms are interchangeable; the numeric form just names the Unicode code point directly. Text with no entities in it passes through unchanged.
Actual markup comes out as plain text: decode an escaped <b> tag and you get the literal characters back, not bold text. Nothing is rendered or executed here, and nothing is uploaded — it happens locally in the page. Worth remembering that decoded output is raw text again, so if it is heading back into a web page it needs re-escaping, in the right context, with the HTML encoder.
Frequently asked questions
Which entities are supported?
All of them, effectively. Decoding uses your browser's built-in HTML parser rather than a fixed list, so the full named set works alongside decimal references like — and hexadecimal ones like —.
Will it render or run the HTML I paste?
No. The output is plain text — an escaped tag decodes to the literal characters of that tag, not to a rendered element. Nothing in your input is executed.
My text still shows an entity after decoding. Why?
It was double-encoded: the sequence &lt; decodes to <, which decodes again to a less-than sign. Run the decode a second time to get the original, then look at why the value passed through two escaping steps upstream.
Is just a normal space?
Not quite. It decodes to a non-breaking space, U+00A0 — a different character from the ordinary space, even though it looks identical. That difference trips up string comparisons and regex matching surprisingly often.
Is my content sent to a server?
No. The decoding happens in your browser, so pasted content stays on your machine.

