URL encode and decode
Percent-encode a URL component or decode UTF-8 percent escapes. Choose literal-plus or form-plus interpretation explicitly.
Escape text for display in an HTML text context, or decode a documented subset of named entities and valid numeric character references. Output remains plain text: the tool does not insert the entered markup into a live preview.
Free to use, with no sign-in. Inputs and results stay in this page and are not sent with the form. Download a result before leaving; this tool does not save your work.
The paragraph markup becomes escaped text rather than a live element.
To display a literal paragraph tag in an HTML text node, escape its delimiters and ampersand rather than interpreting the tag.
Input:
<p title="A&B">Hello</p>
Escaped:
<p title="A&B">Hello</p>Decoding &lt; once produces <, not a less-than sign. Repeated decoding changes the result and can create dangerous surprises when data later reaches an HTML sink.
The encoder replaces &, <, >, double quote and apostrophe. The decoder supports amp, lt, gt, quot, apos, nbsp, copy, reg, trade and euro, plus valid decimal and hexadecimal numeric references ending in semicolons. Unknown named entities remain unchanged.
Numeric decoding requires a valid nonzero Unicode scalar value and rejects control-code references that HTML would reinterpret. This intentionally limited decoder is not a complete HTML parser. It does not decode all historical browser error-recovery rules.
Escapes: & → & < → < > → >
Double quote → " Apostrophe → '
Numeric examples: A → A; 😀 → 😀Limit: 200,000 input characters. Named references require their exact supported name and a semicolon. Invalid, control or surrogate numeric references cause an error. Unrecognized named references are left as written.
HTML text escaping is not a sanitizer for arbitrary HTML and does not make text safe in JavaScript, CSS, SQL or every attribute context. Use the framework’s context-aware escaping in an actual application. No input is rendered as markup or fetched as a resource here.
No. It turns selected characters into references. Sanitizing allowed markup requires a separate, context-aware policy and parser.
The decoder intentionally supports a stated subset rather than claiming to implement every named HTML entity.
No. Results are assigned as plain text. There is no live markup preview or navigation.
These references explain the formulas or formats. The worked examples above were created for this tool and checked against independent calculations or format round trips. AI-assisted development does not imply a named human expert review.
Published 2026-10-23. Examples are illustrations, not measurements of a service or claims about search rankings.
Percent-encode a URL component or decode UTF-8 percent escapes. Choose literal-plus or form-plus interpretation explicitly.
Validate and format JSON with two-space, four-space or compact output. Preserve numeric tokens, string escapes, key order and duplicate keys as written.
Count UTF-8 bytes, Unicode code points, UTF-16 units, grapheme clusters, lines and whitespace-separated words. Inspect the difference with emoji.
All calculators and developer tools · Source-checked guides · How Ithy checks sources