HTML Decoder

Turn HTML entities like & and ' back into normal characters.

  • Runs in your browser
  • Free, no sign-up
Paste text to start

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

  1. 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.
  2. Read the decoded textThe result appears on the right as you type. The status line says how many entities were decoded.
  3. Check the entities foundThe Entities found list shows each entity, the character it stands for and how often it appears.
  4. Handle double encodingIf you still see entities like < in the result, turn on "Decode again for double-encoded text".
  5. 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 &eacute;, &mdash; and &hellip;, 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;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:

&lt;p&gt;Caf&eacute; &amp; Cr&#232;me &mdash; &quot;tr&egrave;s bon&quot; &#x1F60B;&lt;/p&gt;

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 &lt; appears twice and that &#x1F60B; is 😋.

Cleaning up text from WordPress or a feed

Don&#8217;t miss our &#8220;Summer Sale&#8221; &#8211; up to 50&#37; off&hellip;

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

&#8364;5 &#x20AC;5 &euro;5 becomes €5 €5 €5. Decimal, hex and named entities all mean the same character.

Double-encoded text

InputResult
Fish &amp;amp; Chips &amp;lt;3Default: Fish &amp; Chips &lt;3
The same, with "Decode again" onFish & Chips <3 (decoded 2 times)

Removing tags

With "Remove HTML tags too" on, <p>Caf&eacute; <b>&amp;</b> more</p> becomes Café & more.

Tips

  • If the result still contains &amp;, &lt; or &quot;, 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 &#8217;.
  • 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 &#150;, 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 &lt;p&gt;Hello&lt;/p&gt; 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, &lt; 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 &copy 2026. The tool decodes them too, but they do not appear in the Entities found list.

Frequently asked questions

What does an HTML decoder do?
It turns HTML entities, the codes that start with & and end with a semicolon, back into the characters they stand for. &amp; becomes &, &eacute; becomes é and &#8217; becomes ’.
Which entities are supported?
All named entities in the HTML standard, from &nbsp; and &copy; to &hearts;, plus decimal (&#233;) and hexadecimal (&#xE9;) numbers for every Unicode character, including emoji.
What is double-encoded text?
Text that was encoded twice: & first became &amp; and then &amp;amp;. One round of decoding only gives &amp; again. Turn on "Decode again" to go all the way back to &.
Is it safe to paste HTML with scripts?
Yes. The input is decoded as text, the way a browser decodes the contents of a text box, and the result is never inserted into the page as HTML. Nothing in it can run.
What happens to unknown entities?
Codes that look like entities but are not, such as &foo;, are kept unchanged. The list marks them as unknown and the status line counts them.
Can I remove HTML tags at the same time?
Yes. Turn on "Remove HTML tags too" to strip all tags and HTML comments from the input before the entities are decoded.
Why does &nbsp; look like a normal space?
It decodes to a non-breaking space, which looks like a space but keeps words together. Some editors and spreadsheets treat it differently from a normal space.
Is my text sent anywhere?
No. Decoding runs in your browser, and nothing is uploaded.