HTML Decoder

Scraped pages, API responses and database exports love to hand you text littered with &, < and ' — entities meant for the browser, not for your eyes. Paste the encoded text above and get the readable original back: named references like © and …, decimal ones like ©, and hex ones like © all decode.

Decoding follows the same rules browsers use, including the obscure ones: numeric references in the C1 range map through Windows-1252 (&#128; becomes €), impossible code points become the replacement character, and decoding runs in a single pass — so &amp;lt; correctly becomes &lt;, not <. Entities missing their semicolon and unknown names produce clear errors instead of silent garbage.

FAQ

Why doesn't &amp;lt; decode all the way to <?

Because decoding is single-pass, matching how browsers parse: &amp; becomes & and the scan moves on, leaving &lt; as literal text. If you need it fully decoded, run the output through the decoder again — each pass peels exactly one layer.

Are entities without semicolons decoded?

No. Browsers apply a pile of legacy no-semicolon exceptions that differ per entity and context; this decoder requires the semicolon and tells you exactly where one is missing. Strict beats surprising.

Is my pasted data sent anywhere?

No — decoding runs entirely in your browser, so tokens and user data in the text stay on your machine.

Read the full HTML Entity Encoder/Decoder guide and the HTML Entity Encoder/Decoder API reference.