Home › Generators › HTML Decoder
HTML Decoder
This free HTML decoder turns HTML entities back into the characters they stand for: & becomes &, < becomes <, and © becomes ©. It handles named entities, decimal numeric entities, and hex entities — and it works in reverse too, with an encode mode that turns real characters into safe entities for pasting into HTML. Everything converts live as you type, right in your browser.
How it works
HTML has five characters that cannot appear raw in a page: the browser treats < as the start of a tag, & as the start of an entity, and quotes as the edges of attribute values. To show those characters as text, HTML replaces them with entities — short codes that start with & and end with ;. That is why text copied out of a page's source code, an RSS feed, or an email's raw view arrives full of codes like & and " instead of the characters you expected.
There are three kinds of entity, and this tool decodes all three. Named entities use a word: & for &, < for <, > for >, " for ", ' for ', © for ©, ® for ®, and for a non-breaking space. Decimal numeric entities use a character's code number: © is ©, € is €, and — is the em dash —. Hex numeric entities use the same number in hexadecimal: © is also ©, and € is also €. All three forms mean the same character; the page just has to know how to read them.
Decoding runs live as you type, and the count underneath tells you how many entities were found in the input, so you can tell at a glance whether the text was encoded at all. A count of zero means the text had no entities — what you pasted is already plain text. Encoding works the other way: switch to encode mode and the tool turns & into &, < into <, and > into >, so the text can be pasted safely into HTML without the browser mistaking it for markup. The "encode quotes" option also converts " to " and ' to ', which matters inside attribute values, and "encode non-ASCII" turns every character above code 127 into a numeric entity, which is useful when a page must be pure ASCII.
Two practical warnings. First, decoding is a one-way trip for display: once & becomes &, pasting the result back into HTML source without re-encoding will break the page again, so use the swap button to go back and forth rather than editing the decoded text in place. Second, watch out for double-encoded text: &amp; decodes once to &, not to &, because each pass only removes one layer. If your output still shows entities, run it through the decoder a second time — text that has been encoded twice needs two passes.
Everything runs in your browser: the text never leaves your device and is never stored. That is the safe way to handle code snippets, database exports, and feed content, which often contain markup you would not want to paste into a random website.
Worked example
A developer copies a product title out of an RSS feed and gets "Tom & Jerry <3 © 2026" — readable, but full of entity codes instead of real characters.
Step 1: Paste Tom & Jerry <3 © 2026 into the text box, with Decode mode selected.
Step 2: The result appears live, with no button to press.
The output reads "Tom & Jerry <3 © 2026" — the & became &, the < became <, and the decimal entity © became ©. The counter confirms 3 entities found, and the character count drops from 34 to 20, because each multi-character entity collapsed into a single character.
FAQ
What is an HTML entity?
An HTML entity is a short code that stands for a character HTML cannot show directly. It starts with & and ends with ; — for example, & means &, < means <, and © means ©. Entities let a page display characters that would otherwise be read as markup.
What is the difference between named and numeric entities?
Named entities use a word, like © for ©. Numeric entities use the character's code number in decimal, like ©, or in hexadecimal, like ©. All three forms produce the same character; named entities are easier to read and numeric ones cover every character, including ones with no name.
Why does my copied text show & instead of &?
Because the text came from HTML source, an RSS feed, or a database export, where & is stored as the entity &. Paste it into the decoder and it converts back to a plain & instantly.
What does double-encoded text mean?
Text that was encoded twice, like &amp;. One decode pass turns it into &, not &. If your output still shows entities, run it through the decoder a second time — each pass removes one layer.
Does the encoder handle quotes and symbols?
Yes. Encode mode converts & < and > always, quotes when the Encode quotes option is on, and any non-ASCII character — like © or € — into a numeric entity when the Encode non-ASCII option is on.