HTML entities reference
A searchable table of HTML entities with their named, decimal and hexadecimal references — arrows, currency, maths, Greek, accents and dashes.
- Runs in your browser
- Nothing you enter is sent
- Free, no account
Showing 111 entries.
| Char | Named | Decimal | Hex | Description | Copy |
|---|---|---|---|---|---|
| & | & | & | & | Ampersand — must be escaped in HTML and XML text and attribute values | |
| < | < | < | < | Less-than — must be escaped or the parser starts a tag | |
| > | > | > | > | Greater-than — escape it for symmetry and to avoid "]]>" edge cases | |
| " | " | " | " | Double quote — must be escaped inside a double-quoted attribute | |
| ' | ' | ' | ' | Apostrophe — ' is HTML5 and XML; use ' for HTML4 compatibility | |
| |   |   | Non-breaking space — prevents a line break and collapses differently from a normal space | ||
|   |   |   | En space — the width of an n | ||
|   |   |   | Em space — the width of an m | ||
|   |   |   | Thin space — used before French punctuation and inside numbers | ||
| | ‌ | ‌ | ‌ | Zero-width non-joiner — stops two characters forming a ligature | |
| | ‍ | ‍ | ‍ | Zero-width joiner — forces a ligature; also glues emoji sequences together | |
| – | – | – | – | En dash — number ranges: 1914–1918 | |
| — | — | — | — | Em dash — a parenthetical break in a sentence | |
| ‘ | ‘ | ‘ | ‘ | Left single quotation mark | |
| ’ | ’ | ’ | ’ | Right single quotation mark — also the correct apostrophe in prose | |
| “ | “ | “ | “ | Left double quotation mark | |
| ” | ” | ” | ” | Right double quotation mark | |
| „ | „ | „ | „ | Double low-9 quotation mark — opening quote in German | |
| « | « | « | « | Left-pointing double angle quotation mark — French guillemet | |
| » | » | » | » | Right-pointing double angle quotation mark | |
| … | … | … | … | Horizontal ellipsis — one character, not three full stops | |
| · | · | · | · | Middle dot — a separator in breadcrumbs and bylines | |
| • | • | • | • | Bullet | |
| † | † | † | † | Dagger — first footnote mark | |
| ‡ | ‡ | ‡ | ‡ | Double dagger — second footnote mark | |
| § | § | § | § | Section sign | |
| ¶ | ¶ | ¶ | ¶ | Pilcrow / paragraph sign | |
| ′ | ′ | ′ | ′ | Prime — feet, minutes of arc | |
| ″ | ″ | ″ | ″ | Double prime — inches, seconds of arc | |
| € | € | € | € | Euro sign | |
| £ | £ | £ | £ | Pound sign | |
| ¥ | ¥ | ¥ | ¥ | Yen sign | |
| ¢ | ¢ | ¢ | ¢ | Cent sign | |
| ¤ | ¤ | ¤ | ¤ | Generic currency sign | |
| ₹ | — | ₹ | ₹ | Indian rupee sign — no named entity exists | |
| © | © | © | © | Copyright sign | |
| ® | ® | ® | ® | Registered trademark sign | |
| ™ | ™ | ™ | ™ | Trademark sign | |
| ° | ° | ° | ° | Degree sign | |
| µ | µ | µ | µ | Micro sign | |
| ¦ | ¦ | ¦ | ¦ | Broken bar | |
| ¡ | ¡ | ¡ | ¡ | Inverted exclamation mark | |
| ¿ | ¿ | ¿ | ¿ | Inverted question mark | |
| × | × | × | × | Multiplication sign — not the letter x | |
| ÷ | ÷ | ÷ | ÷ | Division sign | |
| ± | ± | ± | ± | Plus-minus sign | |
| − | − | − | − | Minus sign — wider than a hyphen | |
| ≠ | ≠ | ≠ | ≠ | Not equal to | |
| ≤ | ≤ | ≤ | ≤ | Less than or equal to | |
| ≥ | ≥ | ≥ | ≥ | Greater than or equal to | |
| ≈ | ≈ | ≈ | ≈ | Almost equal to | |
| ∞ | ∞ | ∞ | ∞ | Infinity | |
| √ | √ | √ | √ | Square root | |
| ∑ | ∑ | ∑ | ∑ | N-ary summation | |
| ∏ | ∏ | ∏ | ∏ | N-ary product | |
| ∫ | ∫ | ∫ | ∫ | Integral | |
| ∂ | ∂ | ∂ | ∂ | Partial differential | |
| ½ | ½ | ½ | ½ | Vulgar fraction one half | |
| ¼ | ¼ | ¼ | ¼ | Vulgar fraction one quarter | |
| ¾ | ¾ | ¾ | ¾ | Vulgar fraction three quarters | |
| ² | ² | ² | ² | Superscript two | |
| ³ | ³ | ³ | ³ | Superscript three | |
| ← | ← | ← | ← | Leftwards arrow | |
| → | → | → | → | Rightwards arrow | |
| ↑ | ↑ | ↑ | ↑ | Upwards arrow | |
| ↓ | ↓ | ↓ | ↓ | Downwards arrow | |
| ↔ | ↔ | ↔ | ↔ | Left-right arrow | |
| ⇒ | ⇒ | ⇒ | ⇒ | Rightwards double arrow | |
| ⇐ | ⇐ | ⇐ | ⇐ | Leftwards double arrow | |
| ↵ | ↵ | ↵ | ↵ | Carriage return arrow | |
| α | α | α | α | Greek small letter alpha | |
| β | β | β | β | Greek small letter beta | |
| γ | γ | γ | γ | Greek small letter gamma | |
| δ | δ | δ | δ | Greek small letter delta | |
| ε | ε | ε | ε | Greek small letter epsilon | |
| θ | θ | θ | θ | Greek small letter theta | |
| λ | λ | λ | λ | Greek small letter lambda | |
| μ | μ | μ | μ | Greek small letter mu | |
| π | π | π | π | Greek small letter pi | |
| σ | σ | σ | σ | Greek small letter sigma | |
| φ | φ | φ | φ | Greek small letter phi | |
| ω | ω | ω | ω | Greek small letter omega | |
| Δ | Δ | Δ | Δ | Greek capital letter delta | |
| Ω | Ω | Ω | Ω | Greek capital letter omega | |
| Σ | Σ | Σ | Σ | Greek capital letter sigma | |
| á | á | á | á | Latin small letter a with acute | |
| à | à | à | à | Latin small letter a with grave | |
| â | â | â | â | Latin small letter a with circumflex | |
| ä | ä | ä | ä | Latin small letter a with diaeresis | |
| å | å | å | å | Latin small letter a with ring above | |
| æ | æ | æ | æ | Latin small letter ae | |
| ç | ç | ç | ç | Latin small letter c with cedilla | |
| é | é | é | é | Latin small letter e with acute | |
| è | è | è | è | Latin small letter e with grave | |
| ê | ê | ê | ê | Latin small letter e with circumflex | |
| ë | ë | ë | ë | Latin small letter e with diaeresis | |
| í | í | í | í | Latin small letter i with acute | |
| ñ | ñ | ñ | ñ | Latin small letter n with tilde | |
| ó | ó | ó | ó | Latin small letter o with acute | |
| ö | ö | ö | ö | Latin small letter o with diaeresis | |
| ø | ø | ø | ø | Latin small letter o with stroke | |
| ú | ú | ú | ú | Latin small letter u with acute | |
| ü | ü | ü | ü | Latin small letter u with diaeresis | |
| ß | ß | ß | ß | Latin small letter sharp s (eszett) | |
| ♠ | ♠ | ♠ | ♠ | Black spade suit | |
| ♣ | ♣ | ♣ | ♣ | Black club suit | |
| ♥ | ♥ | ♥ | ♥ | Black heart suit | |
| ♦ | ♦ | ♦ | ♦ | Black diamond suit | |
| ★ | — | ★ | ★ | Black star — no named entity | |
| ✓ | ✓ | ✓ | ✓ | Check mark | |
| ✗ | — | ✗ | ✗ | Ballot X |
Your lookup never leaves this tab — check it yourself—
Starting the network probe…
The counter above wraps fetch, XMLHttpRequest and navigator.sendBeacon in this tab and counts every call. It does not block anything — it just reports.
Two ways to verify independently
- Turn off Wi-Fi or enable airplane mode, then use the tool. It keeps working, because the page is already fully loaded.
- Open your browser devtools, switch to the Network tab, clear it, and run the tool. No new row appears.
Why this matters
In 2025 researchers found that popular online formatters had retained tens of thousands of user-submitted snippets — JSONFormatter.org and CodeBeautify together exposed roughly 80,000 saved documents, many containing live cloud credentials, private keys and internal database connection strings, because “format this” quietly meant “upload this”. A separate incident exposed roughly 3.5 million user PDFs on a document-conversion service. The only structural fix is not sending the data in the first place: this site is served under a Content-Security-Policy whose connect-src contains no third-party origin, so a request off this device cannot be made even by accident.
Three ways to write the same character
Every entity has up to three forms, and all of them produce an identical character in the rendered page.
| Form | Example | When to prefer it |
|---|---|---|
| Named | — | HTML, where readability in the source matters |
| Decimal | — | XML, and anywhere the name might not be defined |
| Hexadecimal | — | When cross-checking against a Unicode chart, since U+2014 is the same number |
HTML5 defines around 2,000 named entities. XML defines exactly five. That difference is why markup copied from an HTML context breaks an XML parser — see XML escape.
What actually has to be escaped
Far less than most people escape. In a UTF-8 HTML document:
- In text content:
&and<. That is all. - In an attribute value: those two plus whichever quote character delimits the attribute.
- Everywhere else: nothing. Type é, —, © and 你好 directly.
Escaping every accented character to a numeric reference is a habit left over from the era of
ambiguous encodings. It triples the byte count, makes the source unreadable, and breaks
copy-paste out of the source file. Declare <meta charset="utf-8"> and type the
characters.
The invisible ones
| Entity | What it does | Where it earns its place |
|---|---|---|
| A space that will not break | “10 kg”, “Figure 4”, preventing a lone short word at the end of a heading |
  | A narrow space | Before French punctuation, and inside large numbers |
‌ | Prevents a ligature | Persian and Arabic typography; separating “fi” where a ligature is wrong |
‍ | Forces a join | Glues emoji sequences together — this is how the family emoji is built |
­ | A hyphenation point | Only renders as a hyphen if the line actually breaks there |
Two warnings about . It is not a normal space, so a string comparison or a
regex looking for \s in some engines will not match it — this is a frequent source of
“why does this lookup fail” bugs when content has been pasted from Word. And using a
run of them for indentation is a layout hack; use CSS padding or margin.
Dashes and quotes
The four horizontal lines are genuinely different characters with different jobs, and using the right one is most of what separates typeset text from typed text.
- Hyphen
-— compound words: well-known, twenty-one. - En dash
–— ranges and relationships: 1914–1918, the London–Paris route. - Em dash
—— a parenthetical break in a sentence. - Minus
−— arithmetic. Wider than a hyphen and aligned with the digits.
For quotes, the apostrophe in prose is ’ (’), not the vertical
typewriter mark. Keep the vertical form for code, where it is a delimiter.
Why an entity sometimes shows as literal text
- Double escaping. The ampersand itself was escaped upstream, so the browser receives
&nbsp;and correctly renders as text. - A missing semicolon. HTML5 tolerates it for a handful of legacy entities and not for the rest.
- The wrong context. Entities are processed in HTML text and attribute values. They are not processed inside a
<textarea>value set from JavaScript, inside a JSON string, in a CSScontentproperty (which uses\2014instead), or in an XML document where the name is undeclared. - A framework escaped it for you. React, Vue and most template engines escape text by default, so writing an entity in a JSX string literal outputs it verbatim. Use the actual character, or a JavaScript escape such as
\u2014.
Questions
Which characters must I escape?
In HTML text content, only `&` and `<` are strictly required. Inside an attribute value you must also escape whichever quote delimits it. Everything else is optional in a UTF-8 document — you can type é and — directly.
Named, decimal or hexadecimal?
Named references are readable and safe in HTML — use them. In XML only five names exist, so use numeric references there. Hexadecimal matches how the Unicode standard writes codepoints (U+2014 → `—`), which makes it easier to cross-check against a character chart.
When should I actually use ?
To stop a line break in a specific place: between a number and its unit ("10 kg"), before a lone short word at the end of a heading, or in "Figure 4". Using a run of them for indentation is a layout hack — use CSS padding or margin instead.
Why does my entity show as literal text?
Two usual causes. Either the ampersand itself was escaped somewhere upstream, so the browser sees `&nbsp;`, or you are in a context that does not process entities at all — a `<pre>` block still does, but a `<textarea>` value set from JavaScript, a JSON string and an XML document with an undeclared entity all do not.