HTML Entity & Unicode Escape Decoder

Decode HTML entities, \uXXXX escapes, and percent-encoding in a single pass

Ad placeholder (leaderboard)

This decoder reverses the most common text-encoding tricks in one place: HTML entities, JavaScript backslash escapes, and URL percent-encoding. It is built for security work — de-obfuscating a payload without pasting it into a live console where it might execute.

How it works

The tool applies up to three independent decoders, in the order you select:

  1. Percent-encoding%XX sequences are converted with a decodeURIComponent-style pass (falling back to a manual byte decode if the input is malformed).
  2. JavaScript escapes\uXXXX, \u{...}, \xXX, and the standard \n \r \t escapes are replaced with the characters they represent.
  3. HTML entities — named entities (&), decimal entities ( ), and hex entities ( ) are decoded using the browser’s own entity table via an in-memory element’s text parsing. The value is read back as text only — it is never inserted into the live document or interpreted as markup.

Because each layer is a pure string transformation, the worst a hostile input can do is produce more text. Nothing is ever evaluated.

Why this matters for security analysis

Attackers layer encodings to slip past naive filters: a script tag might arrive as %3Cscript%3E, as <script>, or as \x3cscript\x3e. Pasting such a string into the browser DevTools console to “see what it is” risks accidental execution. This tool decodes it to inert text so you can read the true payload safely. Run it repeatedly on nested encodings until the output stops changing.

Notes and tips

  • Toggle layers off to isolate a single encoding when you want to understand exactly how a string was obfuscated.
  • Non-printing and control characters in the output are shown with a visible marker so a hidden (right-to-left override) or null byte cannot disguise itself.
  • Decoding is one-directional here; this tool does not re-encode. All work stays in your browser.
Ad placeholder (rectangle)