Encode text to named, decimal, or hex entities — and decode them back
&…; sequence so markup can't misread it: & renders as &, © as ©, and numeric © / © hit the same code point. Paste text below, pick a mode, and the conversion runs instantly in your browser.| Named | Character | Decimal | Hex | Code Point |
|---|---|---|---|---|
| & | & | & | & | 38 |
| < | < | < | < | 60 |
| > | > | > | > | 62 |
| " | " | " | " | 34 |
| ' | ' | ' | ' | 39 |
| |   |   | 160 | |
| © | © | © | © | 169 |
| ® | ® | ® | ® | 174 |
| ™ | ™ | ™ | ™ | 8482 |
| ° | ° | ° | ° | 176 |
| ½ | ½ | ½ | ½ | 189 |
| × | × | × | × | 215 |
| ÷ | ÷ | ÷ | ÷ | 247 |
| ¶ | ¶ | ¶ | ¶ | 182 |
| « | « | « | « | 171 |
| » | » | » | » | 187 |
| ‘ | ‘ | ‘ | ‘ | 8216 |
| ’ | ’ | ’ | ’ | 8217 |
| “ | “ | “ | “ | 8220 |
| ” | ” | ” | ” | 8221 |
| … | … | … | … | 8230 |
| – | – | – | – | 8211 |
| — | — | — | — | 8212 |
| € | € | € | € | 8364 |
| £ | £ | £ | £ | 163 |
| ¥ | ¥ | ¥ | ¥ | 165 |
| ¢ | ¢ | ¢ | ¢ | 162 |
| • | • | • | • | 8226 |
| † | † | † | † | 8224 |
| ← | ← | ← | ← | 8592 |
| → | → | → | → | 8594 |
| ∞ | ∞ | ∞ | ∞ | 8734 |
| α | α | α | α | 945 |
| π | π | π | π | 960 |
| ∑ | ∑ | ∑ | ∑ | 8721 |
| á | á | á | á | 225 |
| é | é | é | é | 233 |
| ñ | ñ | ñ | ñ | 241 |
| ß | ß | ß | ß | 223 |
| å | å | å | å | 229 |
| æ | æ | æ | æ | 230 |
| ç | ç | ç | ç | 231 |
The converter itself knows all 121 of these plus Greek letters, math symbols, and the rest of the accented Latin set — anything outside the map falls back to a numeric form automatically, so nothing is ever lost.
Entities exist because HTML parses certain characters as structure. An ampersand might begin a entity reference, an angle bracket might open a tag, and plenty of Unicode characters can't be typed at all. The escape hatch is the same in every case: write the character's name or code point between an ampersand and a semicolon.
Named: é → é. Decimal: é → é. Hex: é → é. All three address Unicode code point 233, and every one of the 1,645 semicolon-terminated names in the HTML5 spec has numeric equivalents you can compute from its code point.
Paste your text, pick a mode, and the output updates as you type. "Encode: named" is the everyday choice — it escapes &, <, > and converts every non-ASCII character to its named entity when the converter knows one. "Encode: & < > only" produces the smallest safe output for HTML text nodes. The decimal and hex modes skip names entirely, which is what you want for email templates and code generation. Decode handles all three forms in one pass and leaves unknown sequences untouched.
The input box starts with Tom & Jerry <3 "Café" — €5 — real characters, including é (code point 233), an em dash (8212), and € (8364). In "Encode: named" mode that becomes Tom & Jerry <3 "Café" — €5: the ampersand and angle bracket get escaped first so nothing can be misread as markup, then each non-ASCII character swaps for its name.
Switch to hex mode and the same input comes out with é for é and € for €, skipping names entirely. Emoji have no names in HTML5 at all, so 😀 encodes as 😀 in every mode; numeric is the only route past the Basic Multilingual Plane. Hit decode on any of these outputs and the original text comes back in a single pass.
An HTML entity is a stand-in sequence for a character that would otherwise be parsed as markup or that a keyboard can't type. It starts with an ampersand and ends with a semicolon, like & for &, < for <, or © for the copyright sign. Numeric forms like © or © address the character's Unicode code point directly.
Inside element text, & < and > are the three that matter: & could start an entity, and < could start a tag. Escape & whenever it's followed by something that could look like an entity, and escape < always; > is technically forgiving in text but escaping it is standard practice. Inside attribute values you should also escape quotes that match the delimiter.
(U+00A0) is a non-breaking space. A browser will not wrap a line at it, and HTML collapses runs of normal spaces down to one, while nbsp sequences render in full. That's why old-school indenting used nbsp runs and why prices like 10 USD keep the unit glued to the number.
Yes. © is the copyright sign but © also works in HTML5, while Greek letters are strictly case-linked: π is lowercase and Π is uppercase. Numeric forms sidestep the whole issue, which is one reason code generators usually emit ...; instead of names.
Because of single-pass decoding. The text &lt; means the original string was literally < (someone escaped an ampersand in front of lt;). Decoding in one pass preserves that; repeatedly re-decoding until nothing changes would corrupt double-escaped text, so well-behaved decoders stop after one pass.
HTML5 defines 2,231 named character references, 2,125 of them terminated with a semicolon (the rest are legacy forms that work without one). This converter maps the 121 that cover everyday text: markup specials, currency, punctuation, math symbols, Greek letters, and accented Latin characters. Anything else still round-trips through numeric decimal or hex forms.