About the HTML Decoder
Text copied from page source, a CMS export, an RSS feed or a database often arrives full of HTML entities: & instead of &, é instead of é, ’ instead of an apostrophe. Paste it into the HTML Decoder and you get clean, readable text back.
The decoder understands all named entities in the HTML standard, as well as decimal (é) and hexadecimal (é) numbers for any character, including emoji. A list below the result shows which entities were found and what each one stands for. Text that was encoded twice, such as <, can be decoded again in one step, and HTML tags can be removed at the same time.
Decoding is done safely: the result is only shown as text and never run as HTML, so pasted scripts cannot do anything. Everything happens in your browser.
How to use it
- Paste your textPaste text with entities into the left box, or drop a file onto it. Sample loads a short HTML snippet full of entities.
- Read the decoded textThe result appears on the right as you type. The status line says how many entities were decoded.
- Check the entities foundThe Entities found list shows each entity, the character it stands for and how often it appears.
- Handle double encodingIf you still see entities like < in the result, turn on "Decode again for double-encoded text".
- Remove tags if you want plain textTurn on "Remove HTML tags too" to strip tags such as <p> and <b> from the input before decoding. Then copy or download the result.
Key features
All HTML entities
Named entities such as é, — and …, plus decimal and hex numbers for any Unicode character.
Entities found list
See every entity in your text with its meaning and a count, sorted by how often it appears.
Double-encoded text
Decode up to five times in a row, for text like &amp; that was encoded more than once.
Tag removal
Strip HTML tags and comments to keep only the text.
Unknown entities flagged
Codes that are not real entities, such as &foo;, are kept as they are and counted separately.
Safe by design
Decoded HTML is shown as plain text and never executed. Nothing is uploaded.
Examples
Decoding a snippet
The Sample button loads:
<p>Café & Crème — "très bon" 😋</p>
The result is <p>Café & Crème — "très bon" 😋</p>, and the status line says 12 entities decoded. The list shows, for example, that < appears twice and that 😋 is 😋.
Cleaning up text from WordPress or a feed
Don’t miss our “Summer Sale” – up to 50% off…
decodes to Don’t miss our “Summer Sale” – up to 50% off…, with 6 entities decoded. Curly quotes and dashes are often stored as numbers like these.
One character, three ways
€5 €5 €5 becomes €5 €5 €5. Decimal, hex and named entities all mean the same character.
Double-encoded text
| Input | Result |
|---|---|
Fish &amp; Chips &lt;3 | Default: Fish & Chips <3 |
| The same, with "Decode again" on | Fish & Chips <3 (decoded 2 times) |
Removing tags
With "Remove HTML tags too" on, <p>Café <b>&</b> more</p> becomes Café & more.
Tips
- If the result still contains &, < or ", the text was encoded twice. Turn on "Decode again" rather than pasting the result back in.
- To get plain text from a page's source, turn on "Remove HTML tags too". Line breaks and spaces from the source stay as they are, so you may want to tidy them with Remove Line Breaks.
- The Entities found list is a quick way to check what a CMS or an export did to your text, for example whether apostrophes were stored as ’.
- Decoded text may contain characters with special meaning in HTML again, such as < and &. Encode it with the HTML Encoder before you put it back into a page.
- Numbers in the 128 to 159 range, such as –, come from old Windows text. Browsers decode them as the Windows characters they were meant to be, and so does this tool.
Common mistakes and limits
- Expecting encoded tags to be removedTags are removed before decoding. Text like <p>Hello</p> contains no real tags, so the result is <p>Hello</p>. Decode first, copy the result back in, then remove the tags.
- Pasting decoded HTML into a pageIf the input came from an untrusted source, the decoded text may contain scripts. The tool only shows it as text; check it before you use it anywhere else.
- Decoding text that should stay encodedIn HTML source, < inside a code sample is intended. Decoding a whole page and saving it again breaks such samples.
- Confusing HTML entities with URL encoding%20 and %C3%A9 are URL encoding, not HTML entities. Use the URL Decoder for those.
- Missing entities without a semicolonBrowsers also accept some old entities without the semicolon, such as © 2026. The tool decodes them too, but they do not appear in the Entities found list.