HTML Entity Encoder / Decoder

Encode text to HTML entities or decode entities back to text — named, decimal and hex. Free, in your browser.

🔒 Encoded and decoded in your browser — nothing is uploaded.

Encode and decode HTML entities

Paste text and press Encode to escape the characters that would break HTML markup — &, <, > and quotes — into safe entities, or paste a string of entities and press Decode to turn them back into readable text. By default, encoding touches only those five special characters, so the rest of your content is left untouched. Tick Encode all non-ASCII characters too to also convert accented letters, symbols and emoji, then choose the entity form from the dropdown that appears.

That dropdown offers Decimal (&#233;), Hex (&#xE9;) or Named, which uses readable names like &copy; and &euro; for a small set of common symbols and falls back to decimal for the rest. Decoding accepts all three forms in a single paste, so mixed markup converts without cleaning it up first, and everything runs in your browser — nothing is uploaded. Handy for embedding code samples, escaping copy for email templates, or reading raw entity-encoded content.

Frequently asked questions

What is the difference between the default Encode and "Encode all non-ASCII characters too"?

The default Encode escapes only the five characters that break HTML markup — &amp;, &lt;, &gt;, " and '. Ticking the box additionally converts every character above ASCII — accented letters, symbols, emoji and CJK — into entities, giving pure-ASCII output.

What do the Decimal, Hex and Named formats produce?

You pick the form when "Encode all non-ASCII" is on. Decimal writes &amp;#233;, Hex writes &amp;#xE9;, and Named uses readable names like &amp;copy; for a small set of known symbols (© ® ™ — – … € £ ¢ ° × ÷), falling back to decimal for anything else. The format only affects the non-ASCII pass, not the five special characters.

Can it encode emoji and other characters outside the basic range?

Yes. Encoding walks the text by Unicode code point, so an emoji like 😀 becomes a single &amp;#128512; (or &amp;#x1F600; in hex) rather than two broken surrogate halves, and decoding turns those numeric entities back into the original character.