HTML Decoder
Convert HTML entities back to readable characters.
Was this tool helpful?
Thanks for the feedback!
The HTML Decoder converts entity codes such as &, ’ and ₹ back into the characters they stand for. Use it when text copied from page source, an RSS feed, a WordPress export or an API response is full of ampersand codes and you want the readable version.
A before-and-after example
Paste this encoded line:
Tom & Jerry’s <b>Deal</b>: ₹499 …
and the result is:
Tom & Jerry’s <b>Deal</b>: ₹499 …
The ampersand, curly apostrophe, angle brackets, rupee sign and ellipsis all come back. The <b> tags reappear as plain text; they are not rendered as bold.
A very common source is the WordPress REST API: post titles arrive with typographic punctuation already encoded, so a title typed as "Tom's Guide" comes back as Tom’s Guide. Decoding gives you the display text with its curly apostrophe.
Which codes it understands
- Named entities from the full HTML5 list, from the everyday
&,<,>,"and toé,©,—and…. - Decimal references such as
₹(₹) and'(an apostrophe). - Hexadecimal references such as
₹, which is also ₹.
The decoding is done by your browser's own HTML parser, the same one that displays web pages, so it follows the HTML standard exactly, including its lenient handling of a few old entities written without the final semicolon. Codes it doesn't recognise, like a made-up &foo;, are left untouched.
Text that is still encoded after decoding
If the output still contains & or <, the text was encoded twice, which often happens when a CMS escapes content that was already escaped. Decode it a second time. For example, &lt; becomes < after one pass and < after two.
The invisible trap:
A decoded becomes a non-breaking space (U+00A0). It looks like an ordinary space but is a different character, so a spreadsheet lookup, a search in your code or a database comparison may fail to match it. If decoded text will be imported or compared, replace non-breaking spaces with normal ones afterwards.
Using decoded text safely
Decoding turns harmless text back into real markup characters. That is fine for reading, editing or saving to a plain text file, but decoded text from an untrusted source should never be inserted into a web page as HTML, since any <script> tag in it would become live. Nothing runs inside this tool itself, because the result is shown as plain text, and the conversion happens entirely in your browser. To encode text again, use the HTML Encoder; to strip tags and keep only the words, try HTML to Plain Text.