JSON Formatter
JSON Formatter for developers — instant, offline-style and privacy-safe.
Turn HTML entities back into their characters — the amp, lt, gt and quot references, plus any named or numeric reference — using the browser's own parser. Runs in your browser.
Your browser is preparing the tool. It runs 100% locally.
Paste text full of HTML entities and the tool turns them back into the characters they stand for, using the browser's own HTML parser. It handles far more than the basic five: every named entity (the copyright sign, the em dash and hundreds more) and every numeric reference, decimal or hexadecimal, including emoji. It decodes through a detached, non-rendering element, so nothing in the input executes. It runs entirely in your browser.
Paste HTML-encoded text and you get the readable original: the amp reference becomes an ampersand, the lt and gt references become the angle brackets, and named references like the copyright or em-dash entity, plus numeric references in decimal or hex, all turn back into their characters.
It is the broad inverse of HTML encoding. Where the encoder touches only five characters, this decoder understands the browser's full entity table, so it can undo entities produced by any tool, content management system or template, not just the basic set.
The tool sets your text as the inner HTML of a detached textarea element, then reads that element's value back. The browser's parser resolves every entity — named or numeric — to its character during that step, which is why the decoder is so complete: it borrows the same engine the browser uses to render pages.
A textarea is used on purpose. Its contents are treated as plain text rather than live markup, so even if the input contains a script or image reference, nothing runs or loads — the entities are decoded, but the markup stays inert.
amp entity → ampersand
lt entity → less-than
gt entity → greater-than
quot entity → double quote
named references (copyright, em dash, and more) → their characters
numeric references, decimal or hex → their charactersIt decodes the browser's entire entity set, not just the five the HTML encoder produces — the pair is deliberately asymmetric.
The text is decoded in your browser using its built-in parser; nothing is uploaded, so encoded content with private data stays on your device.
The decoder is built to be safe: because it resolves entities inside a non-rendering textarea, pasted markup is turned to text, not run. Even so, treat any decoded markup from an untrusted source with care before putting it into a live page.
| Method | browser parser (detached textarea) |
|---|---|
| Decodes | all named entities plus numeric (decimal and hex) |
| Scope | broader than the five-character encoder |
| Safety | input not executed or rendered |
| Reverses | HTML encoding, and entities from any source |
| Where it runs | In your browser — nothing uploaded |
It decodes far more than the HTML encoder produces. The encoder here touches five characters; this decoder understands the browser's whole entity table, so it will happily undo a copyright sign, an em dash or a hex emoji reference that the encoder never creates. The pair is intentionally asymmetric.
A bare ampersand that is not part of a valid entity is left as-is. Browsers are lenient about these ambiguous ampersands, so stray ones in your input pass through unchanged rather than causing an error.
It expects entities, not percent-codes. A URL-style %20 is not an HTML entity and will not be decoded here — use a URL decoder for that. This tool only resolves HTML character references.
Decoded markup is inert in this tool but not automatically safe to reuse. The textarea stops anything from running here, yet if you paste the decoded HTML into a live page, the usual cross-site-scripting precautions apply.
Double-encoded entities decode one layer at a time. If text was encoded twice, one pass through this decoder removes one layer; run it again to fully restore the original.
Turn an entity-filled snippet back into readable text or markup.
Decode entities in text pulled from a CMS, feed or database.
See the real characters behind a string of references.
Restore quotes, dashes and symbols that were stored as entities.
Looking at percent-codes like %20? Use the URL decoder. Want to encode instead? Use the HTML encoder. Reusing the result in a live page? Re-encode or sanitise it for that context first.
Decodes entities by handing the text to the browser's own parser inside a detached textarea, so it resolves the full named and numeric entity set — far more than the five the encoder produces — while keeping the input inert (nothing runs or loads during decoding).
JSON Formatter for developers — instant, offline-style and privacy-safe.
JSON Validator for developers — instant, offline-style and privacy-safe.
Base64 Encoder for developers — instant, offline-style and privacy-safe.
Fast, free Hash Generator that runs entirely client-side in your browser.
Fast, free UUID Generator that runs entirely client-side in your browser.
Fast, free CSS Minifier that runs entirely client-side in your browser.
It is free, private and runs entirely in your browser — no sign-up, no uploads, no limits.