Decode HTML entities online with Calzyra. Convert named and numeric entity references such as &, < and © back into readable text.
Decoded text will appear here
Paste HTML entities in the input panel and they decode automatically
Load sample data to get started
What this tool can do
Named & Numeric References
&, < and © all become the characters they stand for
Full HTML5 Named Table
The browser's own reference table decodes every named entity
One Decode Pass
&amp; becomes &, never a raw ampersand
Bare & Left Alone
Plain ampersands and unknown references pass through unchanged
Decimal & Hex
© and © both decode to ©
Decodes as You Type
The output updates while you edit, and Ctrl+Enter forces a re-run
Copy Output
One click puts the decoded text on your clipboard
Clear Both Panels
Reset the input and the output in a single step
Methodology and approach
The decoder walks the text once from left to right and replaces each entity reference with the character it stands for: named references are looked up in the HTML5 table the browser itself uses, and decimal and hexadecimal character references are read as code points. A single pass means already-encoded text is decoded exactly once, so &amp; becomes & rather than a raw ampersand, and a bare ampersand or a name the table does not define is copied through unchanged.
Paste the encoded text into the input panel on the left and click Decode HTML Entities - the whole job of decoding HTML entities online in one paste, one click and one copy. The decoded text appears in the output panel on the right, with a status line above it reporting how many entity references were replaced.
The workspace also updates on its own: edit the input and the decoded output follows a moment later, so you can see the effect of a change without pressing anything. Ctrl+Enter forces a re-run at once, Copy puts only the decoded text on the clipboard - never the still-encoded input - and Clear empties both panels. The conversion happens in your browser; the text you paste is not sent anywhere.
When the text contains no entity references at all, the output matches the input exactly and the status line says so. That is a useful result rather than an error: it tells you the string was already plain text and needed no decoding.
Tom & Jerry <tag> "Hello"Tom & Jerry <tag> "Hello"HTML entities let a character be written as a reference instead of the raw character: & stands for an ampersand, < for a less-than sign, and © for the copyright symbol. Every reference starts with an ampersand; named references then spell a name and end with a semicolon, while numeric references carry the character's code point in decimal or hexadecimal.
An HTML entity decoder online is the tool that performs that rewrite in reverse. It matters because encoded text is everywhere real data lives - CMS exports, API responses, email bodies, RSS feeds and database columns all store characters as references - and reading those references back as characters is how you inspect, quote or reuse the content. It is also the first thing to reach for when a page or a log shows & or < where a plain & or < was meant.
The word decoder also separates this page from its neighbours. An encoder writes the references; the HTML Formatter and HTML Validator reorganise or check markup rather than reading references; and the HTML to Text Converter strips tags, which is a different job from decoding the references inside the text.
Named references spell the character's name: & for the ampersand, < and > for the angle brackets, " for the double quote, ' for the apostrophe, © for the copyright symbol. The HTML5 standard defines around two thousand of them, and this tool decodes every one the browser's own table knows - so a reference you meet in the wild comes back as the character it names.
Decimal references carry the character's code point in base ten: © is U+00A9, the copyright symbol. Hexadecimal references carry the same number in base sixteen, written after &#x: © is the very same character, and the digits are case-insensitive. Numeric references are what encoders emit for characters that have no name, and both forms decode identically here.
Two details worth knowing. A named reference is written with a trailing semicolon, and the reference is what gets replaced - a bare ampersand in running text is not a reference, so it passes through unchanged, as does any name the HTML5 table does not define. And does not decode to an ordinary space: it becomes U+00A0, the non-breaking space a browser renders without collapsing or joining it to the next line.
© — ✓© — ✓Example - already-encoded text, decoded once. Input: &amp; &#169;. Output: & ©. The first reference is &amp;, the encoding of &, so one pass turns it back into & and no further; the second is the hexadecimal form of the copyright symbol. A single pass is deliberate: decoding is never applied to the decoder's own output, so text cannot be decoded further than the references that were actually pasted.
Example - a mixed line with pass-through cases. Input: café © 2026 &nosuchref; 5 & 10. Output: café © 2026 &nosuchref; 5 & 10. The named references for e-acute and the copyright symbol decode, the unknown &nosuchref; is left exactly as it was written, and the bare ampersand in 5 & 10 stays a plain ampersand - it was never a reference.
Both results are produced by this page's decoder rather than typed by hand, so the strings above are exactly what the output panel shows when you load the example from the toolbar.
Reading content out of a CMS export, an API response or an email body that stored its punctuation as references. Inspecting a database column or a log line that shows & or © instead of & and ©. Cleaning a feed, a sitemap or a scraped snippet before pasting the text into an editor, a ticket or a document. Debugging a template that double-escaped its data, so the page displays the reference rather than the character - the decoded panel is how you confirm what the source actually contains.
It is also the natural companion to the HTML Entity Encoder: encode to put text safely into markup, decode to read it back. It is the wrong tool when the goal is escaping - that is the encoder's job - or when the surrounding markup itself needs tidying or checking, which belongs to the HTML Formatter and the HTML Validator, or when you want the visible text of a document with its tags removed rather than its references decoded, which is the HTML to Text Converter's job.
Decoding is the reverse of encoding, not a security step. The characters it returns are exactly the characters the references stood for - including < and > - so text you decode is the text you must still escape before inserting it into a page. Decode for reading, quoting and analysis; run the encoder before the result goes back into markup.
Two details of this tool are worth knowing before you rely on it. The decode is a single left-to-right pass over what you paste, so text that was encoded twice (&amp;) comes back encoded once (&) - decode the result again if you genuinely need the second pass, which is the correct behaviour for content that was really double-escaped. And unknown references and bare ampersands are reported as passed through rather than as errors: the decoder never guesses at what a name it does not recognize was meant to be.
Common questions about this tool