toolfree

HTML entity decoder

Decode HTML entities — named, decimal and hexadecimal — back to plain text in your browser.

Runs in your browser

Result

Nothing to convert yet.

Three ways to write the same character

 ,   and   are all the non-breaking space, written as a name, as a decimal code point and as a hexadecimal one.   with a capital X appears in older markup and is also valid.

The decoder accepts all of them, so you do not need to know which kind you have.

Double-encoded text

If the result still contains entities — most often < decoding to < — the text was encoded twice. That usually means something escaped it on the way into a database and again on the way out.

Decode again to see the real content. The fix is upstream: escape once, at the point of output.

What is deliberately left alone

A bare ampersand. R&D and Tom & Jerry are unchanged, because & not followed by a valid entity is just an ampersand. A decoder that guessed here would corrupt ordinary prose.

Unknown names. &nosuchthing; stays as written rather than disappearing. The full HTML5 list runs to over two thousand names; this carries the ones in common use, and anything outside it still decodes through its numeric form.

Lone surrogates and out-of-range code points. � is half of a surrogate pair and not a character on its own; � is past the end of Unicode. Both stay as text rather than becoming a replacement character, because turning them into “ would lose what was actually there.

Non-breaking spaces are invisible

The most common surprise:   decodes to a space that looks identical to a normal one and behaves differently — it will not wrap, and it will not match a search for a normal space.

If decoded text is behaving strangely in a comparison, this is usually why.

Nothing is uploaded

Decoded in this page.