HTML entities encode and decode
Escape HTML special characters or turn entities back into readable text.
Related tools
HTML entities encode and decode
Five characters carry structural meaning in HTML — & < > " and ' — so any text that contains them has to be escaped before it can be shown as content rather than interpreted as markup. Paste text to escape it, or paste escaped markup to read it back in plain form. It is the quickest way to prepare a code sample for a blog post, drop user text into a template safely, or decode a feed export where every apostrophe arrived as '.
The scope selector controls how much gets escaped. "Reserved only" touches just the five special characters and leaves everything else — accented letters, symbols, emoji — as literal UTF-8, which is the right choice for any modern page served as UTF-8. "Reserved + non-ASCII" additionally converts every character above the ASCII range into a numeric entity like š, which is what you want for legacy systems, email templates or environments where the character encoding is uncertain.
Decoding is broader than encoding on purpose. It recognises the roughly 120 named entities you actually meet in the wild — © — … é š arrows, Greek letters, currency and maths symbols — plus every numeric form, both decimal { and hexadecimal 😀, including astral characters like emoji. Unknown named entities are left exactly as they are rather than being silently dropped, so nothing is lost.
Everything runs in your browser with no markup parser and no DOM involved, so pasting untrusted HTML here cannot execute anything. Nothing is uploaded — the text stays on your device. The tally under the output counts how many entities were written or resolved.