Skip to content

HTML Entities Decoder

Turn <, é, € and 😀 back into the characters they stand for.

Processed locally in your browser

0 chars · 0 lines
The result will appear here.

What is HTML Entities Decoder?

HTML entities are text escapes: a named reference such as é or ©, a decimal reference such as é, or a hexadecimal one such as é. Scraped web text, RSS feeds, CMS exports and old databases often contain them and need decoding to be readable.

This decoder contains the full HTML 4 named-entity table (about 250 names, including Greek letters, arrows, mathematical symbols and typographic quotes) plus numeric references up to U+10FFFF. It works purely on strings, without a DOM, and decodes exactly once: &amp;lt; becomes &lt; rather than <. Unknown names are left in place and listed in a warning.

How does it work?

  1. Paste the text containing entities.
  2. Read the decoded output; a note tells you how many references were converted.
  3. Check the warning list for unknown entities or invalid numbers, then copy the text or press Swap to re-encode it.

Common use cases

  • Cleaning text copied from an RSS feed, e-mail source or scraped web page.
  • Reading the real characters behind &#x27; and &quot; in an API response.
  • Checking what an entity such as &hellip; or &trade; actually represents.
  • Restoring accented names from a legacy database export.

Examples

Try this input in the tool above:

Input
&lt;p&gt;Caf&eacute; &amp; th&eacute; &mdash; &#8364;5 &#x1F600; &copy; 2026&lt;/p&gt;
Output
<p>Café & thé — €5 😀 © 2026</p>

Privacy

HTML Entities Decoder runs entirely in your browser. The text or files you provide are processed on your device and are not uploaded, logged or stored on our servers.

Limitations

Only the HTML 4 entity set (and &apos;) is built in; rare HTML5-only names stay undecoded but numeric references always work. Decoded output is plain text and is not sanitised as HTML.

Frequently asked questions

Why did &amp;lt; give &lt; and not <?

It is decoded once, which is correct: the source text contained an escaped ampersand followed by "lt;". Run the tool twice only if the text was double-escaped.

What happens to an unknown entity such as &foo;?

It stays unchanged in the output and appears in the warnings, so you can see what was not converted.

How are numbers like &#150; handled?

Like browsers do: references from 128 to 159 are mapped to their Windows-1252 characters (&#150; becomes an en dash). Zero, surrogates and values above U+10FFFF become U+FFFD.

More tools in Encoding & Decoding →