HTML Entities Encoder & Decoder
Encode text to HTML entities or decode entities back to text, live in your browser: 4 encode levels, named, decimal and hex decoding, a clickable entity reference table, copy and download, and warnings for unknown entities.
Also turns common symbols into readable names like © and €.
Your result will appear here.
Input: 0 characters
Common entities (click to insert)
Click a row to insert the character into the input.
| Character | Entity | Name |
|---|---|---|
| & | & | ampersand |
| < | < | less than |
| > | > | greater than |
| " | " | double quote |
| ' | ' | apostrophe |
| non-breaking space | |
| © | © | copyright |
| ® | ® | registered |
| ™ | ™ | trademark |
| € | € | euro |
| £ | £ | pound |
| ¥ | ¥ | yen |
| ¢ | ¢ | cent |
| ° | ° | degree |
| ± | ± | plus minus |
| × | × | multiplication |
| ÷ | ÷ | division |
| – | – | en dash |
| — | — | em dash |
| ‘ | ‘ | left single quote |
| ’ | ’ | right single quote |
| “ | “ | left double quote |
| ” | ” | right double quote |
| … | … | ellipsis |
| • | • | bullet |
| § | § | section |
| ¶ | ¶ | paragraph |
| † | † | dagger |
| ‡ | ‡ | double dagger |
| « | « | left guillemet |
| » | » | right guillemet |
| ¡ | ¡ | inverted exclamation |
| ¿ | ¿ | inverted question |
| ½ | ½ | one half |
| ¼ | ¼ | one quarter |
| ¾ | ¾ | three quarters |
| ← | ← | left arrow |
| → | → | right arrow |
| ↑ | ↑ | up arrow |
| ↓ | ↓ | down arrow |
| ∞ | ∞ | infinity |
| ≠ | ≠ | not equal |
| ≤ | ≤ | less or equal |
| ≥ | ≥ | greater or equal |
| √ | √ | square root |
| ∑ | ∑ | summation |
| π | π | pi |
| α | α | alpha |
| Ω | Ω | omega |
| ♥ | ♥ | hearts |
| ★ | ☆ | star |
🔒 Privacy: conversion runs locally in your browser. Encoding is not encryption: anyone can decode entities, so never use it to hide a password or API key. Encoding user text before it reaches HTML is a core XSS defense.
More developer tools
How this calculator works
An HTML entity is a short code that stands for a character, written as an ampersand, a name or number, and a semicolon, like & for an ampersand, © for the copyright sign, or © for the same sign as a decimal number. Browsers read these codes and show the real character, which is why entities exist: they let you put characters like < and > into a page without the browser mistaking them for tags. This tool converts in both directions, live as you type, with four encode levels and full decoding of named, decimal and hex entities.
The four encode levels cover different jobs. Minimal encodes only the five characters that break HTML (& < > " '), which is what you want when escaping user text before it reaches a page. Named also turns common non-ASCII characters into readable names like € or —, which keeps source code easy to read. Numeric writes every non-ASCII character as a decimal code like €, which is the safest choice when the file encoding is uncertain. All non-ASCII prefers a named entity where one exists and falls back to decimal otherwise, so you get the most readable output that still covers every character. On the decode side, the tool understands named, decimal (©) and hex (©) entities in mixed content, and it flags unknown names and out-of-range numbers instead of silently dropping them.
Encoding is also a core defense against cross-site scripting (XSS). When user text is printed into HTML without encoding, an attacker can inject a <script> tag that runs in other visitors browsers, but if < becomes < first, the browser shows the text instead of running it, which is why every template engine escapes output by default. This tool is the manual version of that same step, handy for email templates, CMS content and test data. One warning: never encode twice. Encoding & again gives &amp;, which renders as the literal text & on the page, and the tool detects that double-encoding and tells you. Everything runs in your browser, nothing is uploaded, and there is no account.
