HTML Punctuation Entities

What You'll Learn
HTML punctuation entities are character references for typographic punctuation: curly quotes (“, ”), en and em dashes (–, —), ellipsis (…), non-breaking space ( ), guillemets, bullets, primes, and many symbols from the General Punctuation block. They are the same mechanism as other HTML entities—named, decimal, or hexadecimal—and help when you want explicit, portable markup.
Use the Quick Reference to copy exact codes. For reserved markup characters such as < and bare &, see Ampersand and the general escaping rules on the HTML entities index. For digits and fractions, see HTML number entities; for copyright, stars, and broader symbols, see HTML symbol entities.
⚡ Quick Reference — HTML Punctuation Entities
Filter by symbol, Unicode (e.g. U+2014), hex, decimal, or entity name.
| Symbol | Unicode | Hex code | HTML code | HTML entity |
|---|---|---|---|---|
| ! | U+0021 | ! | ! | ! |
| " | U+0022 | " | " | " |
| # | U+0023 | # | # | # |
| & | U+0026 | & | & | & |
| ' | U+0027 | ' | ' | ' |
| ( | U+0028 | ( | ( | ( |
| ) | U+0029 | ) | ) | ) |
| * | U+002A | * | * | * |
| , | U+002C | , | , | , |
| . | U+002E | . | . | . |
| / | U+002F | / | / | / |
| : | U+003A | : | : | : |
| ; | U+003B | ; | ; | ; |
| ? | U+003F | ? | ? | ? |
| [ | U+005B | [ | [ | [ |
| \ | U+005C | \ | \ | \ |
| ] | U+005D | ] | ] | ] |
| ^ | U+005E | ^ | ^ | ^ |
| _ | U+005F | _ | _ | _ |
| ` | U+0060 | ` | ` | ` |
| { | U+007B | { | { | { |
| } | U+007D | } | } | } |
| | | U+007C | | | | | | |
| ~ | U+007E | ~ | ~ | ˜ |
| U+00A0 |   |   | | |
| ¡ | U+00A1 | ¡ | ¡ | ¡ |
| ¦ | U+00A6 | ¦ | ¦ | ¦ |
| ¨ | U+00A8 | ¨ | ¨ | ¨ |
| ª | U+00AA | ª | ª | ª |
| « | U+00AB | « | « | « |
| | U+00AD | ­ | ­ | ­ |
| ¯ | U+00AF | ¯ | ¯ | ¯ |
| ´ | U+00B4 | ´ | ´ | ´ |
| µ | U+00B5 | µ | µ | µ |
| · | U+00B7 | · | · | · |
| ¸ | U+00B8 | ¸ | ¸ | ¸ |
| º | U+00BA | º | º | º |
| » | U+00BB | » | » | » |
| ¿ | U+00BF | ¿ | ¿ | ¿ |
| ‐ | U+2010 | ‐ | ‐ | ‐ |
| ‑ | U+2011 | ‑ | ‑ | - |
| ‒ | U+2012 | ‒ | ‒ | - |
| – | U+2013 | – | – | – |
| — | U+2014 | — | — | — |
| ― | U+2015 | ― | ― | ― |
| ‖ | U+2016 | ‖ | ‖ | ‖ |
| ‗ | U+2017 | ‗ | ‗ | - |
| ‘ | U+2018 | ‘ | ‘ | ‘ |
| ’ | U+2019 | ’ | ’ | ’ |
| ‚ | U+201A | ‚ | ‚ | ‚ |
| ‛ | U+201B | ‛ | ‛ | - |
| “ | U+201C | “ | “ | “ |
| ” | U+201D | ” | ” | ” |
| „ | U+201E | „ | „ | „ |
| ‟ | U+201F | ‟ | ‟ | - |
| † | U+2020 | † | † | † |
| ‡ | U+2021 | ‡ | ‡ | ‡ |
| • | U+2022 | • | • | • |
| ‣ | U+2023 | ‣ | ‣ | - |
| ․ | U+2024 | ․ | ․ | - |
| ‥ | U+2025 | ‥ | ‥ | ‥ |
| … | U+2026 | … | … | … |
| ‧ | U+2027 | ‧ | ‧ | - |
| ′ | U+2032 | ′ | ′ | ′ |
| ″ | U+2033 | ″ | ″ | ″ |
| ‴ | U+2034 | ‴ | ‴ | ‴ |
| ‵ | U+2035 | ‵ | ‵ | ‵ |
| ‶ | U+2036 | ‶ | ‶ | - |
| ‷ | U+2037 | ‷ | ‷ | - |
| ‸ | U+2038 | ‸ | ‸ | - |
| ‹ | U+2039 | ‹ | ‹ | ‹ |
| › | U+203A | › | › | › |
| ※ | U+203B | ※ | ※ | - |
| ‼ | U+203C | ‼ | ‼ | - |
| ‽ | U+203D | ‽ | ‽ | - |
| ‾ | U+203E | ‾ | ‾ | ‾ |
| ‿ | U+203F | ‿ | ‿ | - |
| ⁀ | U+2040 | ⁀ | ⁀ | - |
| ⁁ | U+2041 | ⁁ | ⁁ | ⁁ |
| ⁂ | U+2042 | ⁂ | ⁂ | - |
| ⁃ | U+2043 | ⁃ | ⁃ | ⁃ |
| ⁄ | U+2044 | ⁄ | ⁄ | ⁄ |
| ⁅ | U+2045 | ⁅ | ⁅ | - |
| ⁆ | U+2046 | ⁆ | ⁆ | - |
| ⁇ | U+2047 | ⁇ | ⁇ | - |
| ⁈ | U+2048 | ⁈ | ⁈ | - |
| ⁉ | U+2049 | ⁉ | ⁉ | - |
| ⁊ | U+204A | ⁊ | ⁊ | - |
| ⁋ | U+204B | ⁋ | ⁋ | - |
| ⁌ | U+204C | ⁌ | ⁌ | - |
| ⁍ | U+204D | ⁍ | ⁍ | - |
| ⁎ | U+204E | ⁎ | ⁎ | - |
| ⁏ | U+204F | ⁏ | ⁏ | ⁏ |
| ⁐ | U+2050 | ⁐ | ⁐ | - |
| ⁑ | U+2051 | ⁑ | ⁑ | - |
| ⁒ | U+2052 | ⁒ | ⁒ | - |
| ⁓ | U+2053 | ⁓ | ⁓ | - |
| ⁕ | U+2055 | ⁕ | ⁕ | - |
| ⁗ | U+2057 | ⁗ | ⁗ | ⁗ |
| ⁚ | U+205A | ⁚ | ⁚ | - |
| ⁖ | U+2056 | ⁖ | ⁖ | - |
| ⁘ | U+2058 | ⁘ | ⁘ | - |
| ⁙ | U+2059 | ⁙ | ⁙ | - |
| ⁛ | U+205B | ⁛ | ⁛ | - |
| ⁜ | U+205C | ⁜ | ⁜ | - |
| ⁝ | U+205D | ⁝ | ⁝ | - |
| ⁞ | U+205E | ⁞ | ⁞ | - |
Complete HTML Example
Curly quotes, en and em dashes, ellipsis, and a non-breaking space before a unit:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<p>“Typography matters” — she wrote.</p>
<p>Office hours: 9–5. Please wait…</p>
<p>Ships in 10 kg cartons.</p>
</body>
</html>🌐 Browser Support
Named and numeric character references for these punctuation code points work in all modern browsers with UTF-8 documents:
👀 Live Preview
Common punctuation from character references:
🧠 How It Works
Named punctuation entities
HTML defines readable names such as , —, and …. The browser decodes them to the corresponding Unicode characters in text nodes.
Numeric references
Every row has a unique scalar value. Hex — and decimal — both yield the em dash when the reference is valid.
Escaping versus typography
< and & exist so markup parses correctly. Curly quotes and dashes are about typography and still use the same reference syntax.
Consistent decoding
All valid references for one code point render the same glyph; choose names or numbers based on readability and your team’s style guide.
Use Cases
Punctuation entities are commonly used for:
Proper quotes, dashes, and ellipses in long-form content without relying on editor auto-substitution alone.
«/» versus curly quotes depending on language and locale conventions.
Stable, explicit characters in templates where plain-text diffs must stay readable.
ASCII-safe snippets that still render typographic punctuation in mixed pipelines.
Non-breaking spaces between values and units; en dashes in compact range labels.
Server-side templates that emit references instead of raw Unicode when encoding is uncertain.
💡 Best Practices
Do
- Use UTF-8 and
<meta charset="utf-8"> - Pick a house style for quotes and dashes and apply it consistently
- Use
for fixed pairs (number + unit, model names) - Use
–for ranges when your style guide calls for an en dash - Copy rare marks from the Quick Reference when names are missing
Don’t
- Spam
to force layout; use CSS for spacing and alignment - Use the soft hyphen (
­) where a visible hyphen is always required - Confuse hyphen-minus (-), en dash (–), and em dash (—)
- Replace every straight quote with curly quotes inside
<code>or URLs without checking - Forget that
'is for the typewriter apostrophe (U+0027), not always the preferred typographic apostrophe
Key Takeaways
Curly quotes, dashes, and ellipsis have standard named entities in HTML5
“ — ties tokens together; it is not a generic width spacer
Hex and decimal references match one Unicode character per valid reference
…Escaping < / & is about markup safety, not dash choice
Browse the full entity index for math, symbols, and more
❓ Frequently Asked Questions
“/” for curly quotes, —/– for dashes, … for ellipsis, and for a non-breaking space. Use the Quick Reference for exact names and numeric codes. when a line break must not appear between two fragments (for example 10 kg or Dr. Smith). Ordinary word spaces should stay as normal spaces so text wraps naturally.– is the en dash, often used for ranges (9–5). — is the em dash, often used for a break in thought or attribution. Follow your locale and editorial style; the entities only supply the glyphs.' or type the character in UTF-8. For typography, many styles prefer the right single quotation mark ’ (U+2019) when it acts as an apostrophe.Explore More HTML Entities!
Discover 1500+ HTML character references — math operators, arrows, emojis, and more.
7 people found this page helpful
