Last updated: August 29, 2026.
Most symbols can be written directly in UTF-8. Character references remain useful for reserved syntax, nonbreaking spaces, invisible characters, and hard-to-type symbols.
Reserved and spacing characters
Escape a literal ampersand and a less-than sign that could begin markup. Use a nonbreaking space only when a line break would damage meaning.
<p>Terms & conditions apply.</p>
<p>Price: €25 — tax included</p>
<button aria-label="Continue to the next page">Next →</button>| Display | Reference | Meaning |
|---|---|---|
| & | & | Ampersand |
| < | < | Less-than |
| A B | A B | Nonbreaking space |
| " | " | Quotation mark |
Typography and symbols
| Display | Named reference | Numeric |
|---|---|---|
| © | © | © |
| ® | ® | ® |
| € | € | € |
| — | — | — |
| → | → | → |
Preserve meaning and accessibility
A visual symbol does not provide an accessible name by itself. Buttons need visible text or an aria-label. Do not replace headings, lists, or status text with unexplained decorative symbols.
Prefer meaning over decoration
A symbol can save space, but it should not replace a label that readers need. Use text or an accessible name for controls, and use CSS for decoration that carries no meaning.
Test the page with keyboard navigation and inspect the accessible name of symbol-only buttons. Copy the rendered text to confirm that the character behaves as expected outside its visual context.
- Escape reserved HTML syntax.
- Use nonbreaking spaces sparingly.
- Keep currency and mathematical symbols unambiguous.
Keep the byte encoding, declaration, storage, and decoder consistent. When diagnosing a problem, preserve the original input and change one boundary at a time so the actual cause remains visible.
Continue with HTML entities, Unicode code points, character sets list, and copy text to the clipboard.
Practical implementation check
Use browser developer tools and a command-line HTTP client to inspect the actual response rather than relying on appearance alone. Keep a small test page containing ASCII, accented text, punctuation, currency symbols, and emoji. That sample makes an incorrect declaration or conversion obvious and gives you a repeatable check after server, template, or import changes.
Reference: WHATWG named character references.