About the HTML Entities to Text Converter
An entity is a placeholder: three or more characters that a browser swaps for one. They exist because five characters have structural meaning in markup, and because older transports could not carry anything outside ASCII. Databases, RSS feeds, CSV exports from a CMS and log files are full of them long after the reason has gone away, and text that is meant to be read ends up looking like café.
This decoder recognises the full named set that browsers know, from & and through to the mathematical and Greek names, plus decimal forms such as — and hexadecimal forms such as 🚢 that reach astral characters like emoji. Code points outside the valid Unicode range, and lone surrogate halves, are refused and left untouched rather than turned into replacement characters. A numeric reference without its closing semicolon is also left alone, because guessing where it ends is how decoders corrupt phone numbers.
Two switches deal with the awkward cases. Decode repeatedly runs up to five passes, which is what you need when a value went through an encoder twice and arrives as &. Also remove tags strips the markup after decoding, handy when the field held an escaped HTML fragment and you only wanted the sentence inside it. Non breaking spaces become ordinary spaces by default, since they are invisible and break search and sorting later. The opposite direction lives in Text to HTML Entities.
How to use
- Paste the encoded text. Mixed named and numeric entities in one document are fine.
- Leave Decode on Named and numeric unless you deliberately want one kind preserved.
- Tick Decode repeatedly when the source was encoded more than once.
- Press Copy for the clean text, or Swap to encode it again.
Common questions
- Why is one entity left as it was?
- Either the name is not a real HTML entity, or the numeric value is outside the range Unicode defines. Both are left visible so you can see what the source actually contained.
- What does decode repeatedly protect against?
- Double encoding, where an ampersand was itself encoded on a second pass. Without it you would decode &lt; to < and stop one step early.
- Does it need the semicolon at the end?
- Yes. Browsers tolerate some entities without one for historic reasons, but relying on that turns strings such as ¬it into a mangled mess.
- Will the tool decode entities inside attributes?
- It decodes every entity it finds, wherever it sits. If you only want the visible text, tick the option that removes tags as well.