HTML decoding through the browser parser
HTML decoding reverses entity encoding. & becomes &, < becomes <, A becomes A, and A also becomes A. TextResult delegates to DOMParser: the input is parsed as HTML and the resulting body.textContent is returned. That means every entity your browser knows about decodes correctly, including the long tail of HTML5 named entities like ©, …, and —.
Numeric references work in both forms: decimal (A) and hex (A). High codepoints work too: 😀 and 😀 both decode to ๐. The case of the leading x in hex references and the trailing ; are handled the same way the browser handles them in real HTML, which means stray missing semicolons sometimes still decode (the same lenient parsing as the address bar).
Plain text passes through untouched. If the input contains literal HTML tags, the parser reads the tags as structure and only the text content comes out. So <p>Hello</p> in the input would become Hello on output. To preserve tags, encode them first (paste the input into HTML encode) before decoding.
How to use html decode entities
- 1Paste your HTML-encoded string into the input panel on the left.
- 2The decoded text appears in the output panel on the right as you type.
- 3Named, decimal, and hex entities all decode in a single pass.
- 4Click Copy in the output header to copy the decoded text.
- 5If a tag-bearing input strips structure, encode the source first via HTML encode, then decode.
Keyboard shortcuts
Drive TextResult without touching the mouse.
| Shortcut | Action |
|---|---|
| Ctrl F | Open the find & replace panel inside the input Plus |
| Ctrl Z | Undo the last input change |
| Ctrl Shift Z | Redo |
| Ctrl Shift Enter | Toggle fullscreen focus on the editor Plus |
| Esc | Close find & replace, or exit fullscreen |
| Ctrl K | Open the command palette to jump to any tool Plus |
| Ctrl S | Save current workflow draft Plus |
| Ctrl P | Run a saved workflow Plus |
What this tool actually does
Browser parser handles every named entity
The decoder uses DOMParser, so the named-entity table is whatever your browser ships. &, <, >, ", ', ©, …, —, and the rest of HTML5's ~250 named entities all work.
Decimal and hex numeric references decode in one pass
A and A both decode to A. High codepoints decode to their multibyte UTF-16 character, including emoji like 😀 -> ๐.
Strips HTML structure to text
The input is parsed as HTML and the body's textContent is returned. Literal tags in the input are read as structure, so <p>Hi</p> in the input yields Hi in the output. To preserve tag text, encode the source first.
Plain text passes through unchanged
Text without any &...; sequences comes out byte-for-byte the same. Whitespace, line breaks, accented characters, and emoji all roundtrip.
Browser-side, no upload
Decoding runs through DOMParser on each keystroke. No server round-trip, no log of what you pasted.
Worked example
< and > decode to < and >, then the parser reads the literal <p> as structure and strips it. & decodes to &, é decodes to รฉ.
<p>Hello & welcome to café!</p>
Hello & welcome to cafรฉ!
Settings reference
| Behaviour | Effect on output |
|---|---|
| Named entities | Every named entity in your browser's table decodes (© -> (C), … -> ...). |
| Decimal references | A -> A, 😀 -> ๐. |
| Hex references | A -> A, 😀 -> ๐. Case-insensitive on the leading x and on the hex digits. |
| Plain text | Pass through unchanged. |
| Literal HTML tags | Parsed as structure. Tags strip; only text content remains. Encode first to preserve them. |
Stray & |
A & not followed by a recognised entity passes through as a literal &. |
| Whitespace and newlines | Preserved. |
FAQ
Why does my input with literal <p> tags lose them after decode?
Does it decode named entities like © and …?
© -> (C), … -> ..., ™ -> (TM).What about emoji and other high codepoints?
😀) and hex (😀) numeric references decode to their codepoint, including ones above U+FFFF. 😀 decodes to ๐.What happens if an entity is missing the trailing semicolon?
& followed by the entity name. If the result is wrong, add the semicolon and re-paste.Is the input sent anywhere?
DOMParser. Nothing is uploaded, nothing is logged.