A scannable cheat sheet of common HTML entities and special characters, with the named, decimal, and hexadecimal code for each one alongside the character it renders. Core references like &, <, and > are server-rendered in the page, and you can filter the full list with the search box below.
| Character | Named | Decimal | Hex | Description |
|---|---|---|---|---|
| & | & |
& |
& |
Ampersand |
| < | < |
< |
< |
Less-than sign |
| > | > |
> |
> |
Greater-than sign |
| " | " |
" |
" |
Double quotation mark |
| ' | ' |
' |
' |
Apostrophe |
| [nbsp] | |
  |
  |
Non-breaking space |
| ¡ | ¡ |
¡ |
¡ |
Inverted exclamation mark |
| ¢ | ¢ |
¢ |
¢ |
Cent sign |
| £ | £ |
£ |
£ |
Pound sign |
| ¤ | ¤ |
¤ |
¤ |
Currency sign |
| ¥ | ¥ |
¥ |
¥ |
Yen sign |
| ¦ | ¦ |
¦ |
¦ |
Broken bar |
| § | § |
§ |
§ |
Section sign |
| ¨ | ¨ |
¨ |
¨ |
Diaeresis |
| © | © |
© |
© |
Copyright sign |
| ª | ª |
ª |
ª |
Feminine ordinal indicator |
| « | « |
« |
« |
Left angle quotation mark |
| ¬ | ¬ |
¬ |
¬ |
Not sign |
| ® | ® |
® |
® |
Registered sign |
| ¯ | ¯ |
¯ |
¯ |
Macron |
| ° | ° |
° |
° |
Degree sign |
| ± | ± |
± |
± |
Plus-minus sign |
| ² | ² |
² |
² |
Superscript two |
| ³ | ³ |
³ |
³ |
Superscript three |
| ´ | ´ |
´ |
´ |
Acute accent |
| µ | µ |
µ |
µ |
Micro sign |
| ¶ | ¶ |
¶ |
¶ |
Pilcrow sign |
| · | · |
· |
· |
Middle dot |
| ¸ | ¸ |
¸ |
¸ |
Cedilla |
| ¹ | ¹ |
¹ |
¹ |
Superscript one |
| º | º |
º |
º |
Masculine ordinal indicator |
| » | » |
» |
» |
Right angle quotation mark |
| ¼ | ¼ |
¼ |
¼ |
Fraction one quarter |
| ½ | ½ |
½ |
½ |
Fraction one half |
| ¾ | ¾ |
¾ |
¾ |
Fraction three quarters |
| ¿ | ¿ |
¿ |
¿ |
Inverted question mark |
| × | × |
× |
× |
Multiplication sign |
| ÷ | ÷ |
÷ |
÷ |
Division sign |
| € | € |
€ |
€ |
Euro sign |
| ™ | ™ |
™ |
™ |
Trademark sign |
| ← | ← |
← |
← |
Left arrow |
| ↑ | ↑ |
↑ |
↑ |
Up arrow |
| → | → |
→ |
→ |
Right arrow |
| ↓ | ↓ |
↓ |
↓ |
Down arrow |
| ↔ | ↔ |
↔ |
↔ |
Left-right arrow |
| ∀ | ∀ |
∀ |
∀ |
For all |
| ∂ | ∂ |
∂ |
∂ |
Partial differential |
| ∃ | ∃ |
∃ |
∃ |
There exists |
| ∅ | ∅ |
∅ |
∅ |
Empty set |
| ∇ | ∇ |
∇ |
∇ |
Nabla |
| ∈ | ∈ |
∈ |
∈ |
Element of |
| ∉ | ∉ |
∉ |
∉ |
Not an element of |
| ∏ | ∏ |
∏ |
∏ |
Product sign |
| ∑ | ∑ |
∑ |
∑ |
Summation sign |
| − | − |
− |
− |
Minus sign |
| √ | √ |
√ |
√ |
Square root |
| ∝ | ∝ |
∝ |
∝ |
Proportional to |
| ∞ | ∞ |
∞ |
∞ |
Infinity |
| ∧ | ∧ |
∧ |
∧ |
Logical and |
| ∨ | ∨ |
∨ |
∨ |
Logical or |
| ∩ | ∩ |
∩ |
∩ |
Intersection |
| ∪ | ∪ |
∪ |
∪ |
Union |
| ∫ | ∫ |
∫ |
∫ |
Integral |
| ≈ | ≈ |
≈ |
≈ |
Approximately equal |
| ≠ | ≠ |
≠ |
≠ |
Not equal |
| ≤ | ≤ |
≤ |
≤ |
Less than or equal |
| ≥ | ≥ |
≥ |
≥ |
Greater than or equal |
| ⇐ | ⇐ |
⇐ |
⇐ |
Double left arrow |
| ⇑ | ⇑ |
⇑ |
⇑ |
Double up arrow |
| ⇒ | ⇒ |
⇒ |
⇒ |
Double right arrow |
| ⇓ | ⇓ |
⇓ |
⇓ |
Double down arrow |
| ⇔ | ⇔ |
⇔ |
⇔ |
Double left-right arrow |
| ♠ | ♠ |
♠ |
♠ |
Spade suit |
| ♣ | ♣ |
♣ |
♣ |
Club suit |
| ♥ | ♥ |
♥ |
♥ |
Heart suit |
| ♦ | ♦ |
♦ |
♦ |
Diamond suit |
“HTML entities” is the common name for the character references defined by the HTML Living Standard. A conforming reference begins with an ampersand and ends with a semicolon. For example, the less-than sign is written as <, and an ampersand is written as &.
A few characters are reserved in HTML because the browser uses them to build the page. The angle brackets < and > open and close tags, the ampersand & begins every entity, and quotes wrap attribute values. To show those characters as plain text rather than have the browser act on them, you replace each one with its entity. Entities also give you a reliable way to write symbols and Unicode characters that are hard to type, such as © for ©, € for €, or a numeric reference like 😀 for an emoji.
Every entity comes in up to three forms: a named reference such as &, a decimal reference such as &, and a hexadecimal reference such as &. All three render the same character; named entities are the easiest to read, while numeric entities work for any Unicode code point.
Use this page to encode HTML entities, decode HTML entities, see worked conversion examples, review common use cases, check the ampersand entity, or browse the HTML entity reference table.
HTML encoding converts characters such as &, <, >, quotes, and symbols into entity references. Encoding is useful when text needs to be shown inside markup without being interpreted as markup.
&, ©, and ♥& and ©& and ©Start with the HTML entity encoder above, then compare the output against the reference table.
HTML decoding converts entity references back into readable text. For example, & decodes to &, < decodes to <, and © decodes to ©.
The decoder supports named HTML entities plus decimal and hexadecimal numeric references. This makes it useful for reviewing copied HTML snippets, CMS output, escaped JSON strings, and source text that contains encoded characters.
Decoding can diagnose entities that show up as literal text on a page. If a measured second decoding pass is required, fix the duplicate encoding step at its source. Do not decode repeatedly “until clean”: legitimate entity-like text can be changed, and decoded markup must still be escaped or sanitized for its final rendering context.
Double encoding happens when a pipeline escapes text that was already escaped. The examples below are displayed as code; none is inserted as live HTML.
| Stage | Stored or source text | Browser-visible result after one HTML parse |
|---|---|---|
| Raw value | Tom & Jerry |
Not markup-ready because the literal ampersand begins reference syntax. |
| Encoded once | Tom & Jerry |
Tom & Jerry — intended. |
| Encoded twice | Tom &amp; Jerry |
Tom & Jerry — a visible entity indicates the extra layer. |
See the complete double-encoding diagnosis and repair guide.
These before-and-after examples show how everyday text and symbols look once they are encoded as HTML entities. The left column is what you type; the right column is the encoded output you can paste safely into HTML.
| Input (plain text) | Encoded HTML entity output | Why |
|---|---|---|
Tom & Jerry |
Tom & Jerry |
A literal ampersand must be encoded so it is not read as the start of an entity. |
<div class="card"> |
<div class="card"> |
Encoding <, >, and quotes lets you show HTML as text instead of rendering it. |
5 > 3 && 2 < 4 |
5 > 3 && 2 < 4 |
Math and logic snippets stay intact when the comparison and ampersand characters are encoded. |
© 2025 — Acme™ |
© 2025 — Acme™ |
Named entities make copyright, dash, and trademark symbols readable in source. |
€49 & £39 |
€49 & £39 |
Named references are readable in source; literal currency symbols also work in a correctly declared UTF-8 document. |
Café résumé |
Café résumé |
Accented letters can be encoded as decimal references when you need pure ASCII output. |
Rocket 🚀 |
Rocket 🚀 (hex 🚀) |
Emoji and other Unicode characters encode as decimal or hexadecimal numeric entities. |
{"name":"A & B"} |
{"name":"A & B"} |
When JSON text is displayed in an HTML text node, HTML-context escaping keeps its ampersand literal. Other contexts need their own encoding rules. |
Paste any of these into the encoder above to reproduce the output, then switch to Decode to convert the entities back to their original characters.
HTML entity encoding and decoding solves a handful of recurring, real-world problems. Here is when reach for this tool.
Showing an HTML snippet as text requires encoding <, >, and & so the browser prints the markup instead of running it.
If a page shows &amp; or visible < tags, the text was encoded twice. Decode it here to recover clean characters.
Character references can help when inspecting source transformations. In modern pages, a declared UTF-8 encoding should normally preserve literal currency, accent, and symbol characters.
Escape untrusted data for its exact output context. HTML text, attributes, URLs, JavaScript, and CSS do not share one universal encoder; prefer the framework's contextual escaping.
Use character references for HTML-significant characters in email markup, while keeping the message character encoding explicit. Test the final MIME and rendered message rather than converting every Unicode character by default.
Emoji and other Unicode characters can be written as decimal (😀) or hex (😀) entities for environments that expect ASCII.
Pass raw text to the normal escaped binding. Pre-encoding that same value before the framework renders it is a common route to double encoding. Raw-HTML escape hatches require trusted, sanitized markup.
function Comment({ text }) {
return <p>{text}</p>;
}
Render untrusted text as a normal child. Avoid dangerouslySetInnerHTML unless the markup is trusted and sanitized. React reference.
<p>{{ comment }}</p>
Text interpolation escapes HTML. Do not use v-html with user-provided content. Vue security guide.
<p>{{ comment }}</p>
Keep HTML auto-escaping enabled and avoid |raw for untrusted values. Twig autoescape docs.
<p>{{ $comment }}</p>
Double braces pass values through htmlspecialchars. Avoid {!! '{!! $comment !!}' !!} for user data. Blade documentation.
For language-level functions and browser APIs, see encoding and decoding in JavaScript, PHP, and Python.
The ampersand character starts every HTML entity, so a literal ampersand should be encoded as & when it appears in text. The same character can also be written as decimal & or hexadecimal &.
Common examples include brand names, query strings shown as text, and code examples: AT&T displays as AT&T. See the first row of the entity table for the ampersand formats.
Use the Encode Scope option to control how much is encoded: encode only the reserved special characters, every non-ASCII character, or every character. Conversion runs in your browser; analytics events contain only the mode, selected options, and interaction type, never the text you enter. When you are done, the entity reference table lets you look up the named, decimal, and hex code for common characters.