HTML Entity Decoder

Turn HTML entities back into readable characters

About HTML Entity Decoder

HTML Entity Decoder reads text full of HTML entities, as found in RSS feeds, CMS exports, scraped pages, or email source, and writes the real characters. Named entities such as &eacute;, &mdash;, or &nbsp; are looked up by your browser's HTML parser, so every name it knows works; numeric ones, decimal (&#8364;) or hex (&#x20AC;), are converted directly. Tags such as <b> are kept exactly, and each entity is decoded once per click. An Encode button is there too, for the opposite direction; both work inside this tab.

Example

A line copied from a feed's source, decoded with one click:

Text with entities

Price: &euro;5 &ndash; &copy; 2026 &#x1F600; <b>&amp;lt;b&amp;gt;</b>

Decode

Price: €5 – © 2026 😀 <b>&lt;b&gt;</b>

How to decode HTML entities

  1. 1Paste the text that shows codes such as &amp; or &#39; instead of characters.
  2. 2Click "Decode" to replace every entity with its character; tags stay in place.
  3. 3If the result still shows codes like &lt;, the source was escaped twice: copy the result back into the input box and click "Decode" again.
  4. 4The clean text lands in the lower box, where "Copy" takes it and "Download" saves it as decoded.txt.

Formats and limits

Named entities
Every name known to your browser's HTML parser, written with its final semicolon (a few old names also work without it)
Numeric entities
Decimal and hex, up to U+10FFFF; zero, surrogates, and larger codes give the replacement character
Tags and other text
Left exactly as written

Where your text is processed

Decoding happens in this tab: numeric codes are converted by the page's own script, and each named entity is handed alone to your browser's DOMParser, which does not run scripts or fetch images. What you paste stays in this tab and disappears when it closes. A crash of this page, a blocked clipboard included, sends us an error report with the cleaned error message, this tool's name, and your browser with its version; nothing you pasted is part of it.

Frequently asked questions

Why does my text still show &amp; after decoding?

It was escaped twice, which some CMS and export scripts do: &amp;amp; decodes to &amp;. Each Decode removes exactly one layer and always reads the input box, so copy the result back into it and decode again to reach the plain character.

Are HTML tags removed?

No. Only entities change; tags such as <b>, <p>, or <a href> stay exactly as written in the output. That keeps the markup intact when you only want readable accents and symbols.

Is &nbsp; turned into an ordinary space?

No. It becomes a non-breaking space (U+00A0), which looks the same on screen but is a different character, so a search or a comparison with a normal space will not match it.

Which numeric entities give a replacement character?

Zero, the surrogate range &#xD800; to &#xDFFF; and anything above &#x10FFFF; give �. Codes 128 to 159 give invisible control characters here, whereas browsers display them as Windows-1252 symbols such as an en dash.

Tips and tricks

  • ✓Paste the page source, not the rendered page: text copied from a displayed page has no entities left to decode.
  • ✓Need the reverse? "Encode" on this page escapes the ampersand, angle brackets, and quotes.