HTML Entities to Text Decoder — Free Online | JsonFormatter
Decode HTML entities like &, <, © and — back to their actual characters. Paste encoded text and get readable output instantly.
Encoded Input
Decoded Text
What Is an HTML Entities to Text Decoder?
If you've ever pulled content out of a database or API response and found it littered with things like &, <, ©, or —, you know how annoying encoded entities can be. This tool decodes all of those back to their actual characters — so & becomes &, < becomes <, and © becomes the copyright symbol. It handles all named character references defined in the HTML spec, as well as decimal and hex numeric references like © and ©.
The decoding uses the browser's built-in HTML parser, which means it handles every HTML entity correctly, including edge cases that simpler regex-based decoders miss. If you need this kind of decoding in a Node.js project, the he library is an excellent choice — it's spec-compliant and handles all the same entities this tool does.
How to Use This Tool
Paste Encoded Text
Paste your HTML-entity-encoded text into the left editor, or click Upload to load a file. Hit Sample to try a ready-made example.
See the Decoded Output
The right panel shows the decoded text instantly as you type. Named entities, numeric entities, and hex entities are all resolved to their actual characters.
Copy or Download
Use Copy to grab the decoded text or Download to save it as a file. If you need to go the other direction, try the Text to HTML Entities encoder.
Decoding Example
Here's a typical chunk of entity-encoded text — the kind you might find in an API response or database export. Paste it in to see the decoded output:
Encoded input
When You'd Actually Use This
The most common scenarios are cleaning up data from APIs, databases, or CMS exports where content got double-encoded or stored with HTML entities. It's also useful when working with RSS feeds, email templates, or any text that passed through an HTML encoder at some point. You can find a full list of named entities in the W3Schools HTML entities reference, and the full Unicode table covers all the characters these entities represent.
If you need to encode text into entities instead, try the Text to HTML Entities tool.
Frequently Asked Questions
What types of HTML entities does this handle?
All of them: named entities like &, ©, and —; decimal numeric entities like ©; and hexadecimal entities like ©. The full list of named entities is defined in the HTML spec.
Is this the same as HTML unescaping?
Mostly, yes. "Unescaping" and "decoding entities" are used interchangeably. This tool focuses specifically on converting entity references back to characters. For general HTML unescaping that also handles other escape sequences, check the MDN entity reference.
Does it handle double-encoded entities?
It decodes one layer at a time. If your text contains &amp; (double-encoded), the first pass turns it into &, and you'd paste the result again to fully decode it. This is intentional — it prevents accidentally corrupting text that legitimately contains entity sequences.
Is any data sent to a server?
No. The decoding runs entirely in your browser using the DOM's built-in HTML parser. Nothing is uploaded anywhere.
Can I use this for XML entities too?
The five XML predefined entities (&, <, >, ", ') are a subset of HTML entities, so they're all decoded correctly. Custom XML entities defined in DTDs are not handled.
Related Tools
Entity names are defined in the HTML Living Standard named character references. For a quick reference, see W3Schools HTML entities. The MDN entity glossary explains how entities work in HTML. For server-side decoding in Node.js, the he library is widely used. The Unicode character table covers all characters these entities represent.