HTML Punctuation Entities

Beginner
⏱️ 8 min read
📚 Updated: May 2026
🎯 1 Code Example
Quotes, dashes, and spacing

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.

SymbolUnicodeHex codeHTML codeHTML entity
!U+0021&#x21;&#33;&excl;
"U+0022&#x22;&#34;&quot;
#U+0023&#x23;&#35;&num;
&U+0026&#x26;&#38;&amp;
'U+0027&#x27;&#39;&apos;
(U+0028&#x28;&#40;&lpar;
)U+0029&#x29;&#41;&rpar;
*U+002A&#x2a;&#42;&ast;
,U+002C&#x2c;&#44;&comma;
.U+002E&#x2e;&#46;&period;
/U+002F&#x2f;&#47;&sol;
:U+003A&#x3a;&#58;&colon;
;U+003B&#x3b;&#59;&semi;
?U+003F&#x3f;&#63;&quest;
[U+005B&#x5b;&#91;&lbrack;
\U+005C&#x5c;&#92;&bsol;
]U+005D&#x5d;&#93;&rbrack;
^U+005E&#x5e;&#94;&Hat;
_U+005F&#x5f;&#95;&lowbar;
`U+0060&#x60;&#96;&grave;
{U+007B&#x7b;&#123;&lbrace;
}U+007D&#x7d;&#125;&rbrace;
|U+007C&#x7c;&#124;&vert;
~U+007E&#x7e;&#126;&tilde;
 U+00A0&#xa0;&#160;&nbsp;
¡U+00A1&#xa1;&#161;&iexcl;
¦U+00A6&#xa6;&#166;&brvbar;
¨U+00A8&#xa8;&#168;&uml;
ªU+00AA&#xaa;&#170;&ordf;
«U+00AB&#xab;&#171;&laquo;
­U+00AD&#xad;&#173;&shy;
¯U+00AF&#xaf;&#175;&macr;
´U+00B4&#xb4;&#180;&acute;
µU+00B5&#xb5;&#181;&micro;
·U+00B7&#xb7;&#183;&middot;
¸U+00B8&#xb8;&#184;&cedil;
ºU+00BA&#xba;&#186;&ordm;
»U+00BB&#xbb;&#187;&raquo;
¿U+00BF&#xbf;&#191;&iquest;
U+2010&#x2010;&#8208;&hyphen;
U+2011&#x2011;&#8209;-
U+2012&#x2012;&#8210;-
U+2013&#x2013;&#8211;&ndash;
U+2014&#x2014;&#8212;&mdash;
U+2015&#x2015;&#8213;&horbar;
U+2016&#x2016;&#8214;&Vert;
U+2017&#x2017;&#8215;-
U+2018&#x2018;&#8216;&lsquo;
U+2019&#x2019;&#8217;&rsquo;
U+201A&#x201A;&#8218;&sbquo;
U+201B&#x201B;&#8219;-
U+201C&#x201C;&#8220;&ldquo;
U+201D&#x201D;&#8221;&rdquo;
U+201E&#x201E;&#8222;&bdquo;
U+201F&#x201F;&#8223;-
U+2020&#x2020;&#8224;&dagger;
U+2021&#x2021;&#8225;&Dagger;
U+2022&#x2022;&#8226;&bull;
U+2023&#x2023;&#8227;-
U+2024&#x2024;&#8228;-
U+2025&#x2025;&#8229;&nldr;
U+2026&#x2026;&#8230;&hellip;
U+2027&#x2027;&#8231;-
U+2032&#x2032;&#8242;&prime;
U+2033&#x2033;&#8243;&Prime;
U+2034&#x2034;&#8244;&tprime;
U+2035&#x2035;&#8245;&bprime;
U+2036&#x2036;&#8246;-
U+2037&#x2037;&#8247;-
U+2038&#x2038;&#8248;-
U+2039&#x2039;&#8249;&lsaquo;
U+203A&#x203A;&#8250;&rsaquo;
U+203B&#x203B;&#8251;-
U+203C&#x203C;&#8252;-
U+203D&#x203D;&#8253;-
U+203E&#x203E;&#8254;&oline;
U+203F&#x203F;&#8255;-
U+2040&#x2040;&#8256;-
U+2041&#x2041;&#8257;&caret;
U+2042&#x2042;&#8258;-
U+2043&#x2043;&#8259;&hybull;
U+2044&#x2044;&#8260;&frasl;
U+2045&#x2045;&#8261;-
U+2046&#x2046;&#8262;-
U+2047&#x2047;&#8263;-
U+2048&#x2048;&#8264;-
U+2049&#x2049;&#8265;-
U+204A&#x204A;&#8266;-
U+204B&#x204B;&#8267;-
U+204C&#x204C;&#8268;-
U+204D&#x204D;&#8269;-
U+204E&#x204E;&#8270;-
U+204F&#x204F;&#8271;&bsemi;
U+2050&#x2050;&#8272;-
U+2051&#x2051;&#8273;-
U+2052&#x2052;&#8274;-
U+2053&#x2053;&#8275;-
U+2055&#x2055;&#8277;-
U+2057&#x2057;&#8279;&qprime;
U+205A&#x205A;&#8282;-
U+2056&#x2056;&#8278;-
U+2058&#x2058;&#8280;-
U+2059&#x2059;&#8281;-
U+205B&#x205B;&#8283;-
U+205C&#x205C;&#8284;-
U+205D&#x205D;&#8285;-
U+205E&#x205E;&#8286;-
1

Complete HTML Example

Curly quotes, en and em dashes, ellipsis, and a non-breaking space before a unit:

html
<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
</head>
<body>

<p>&ldquo;Typography matters&rdquo; &mdash; she wrote.</p>
<p>Office hours: 9&ndash;5. Please wait&hellip;</p>
<p>Ships in 10&nbsp;kg cartons.</p>

</body>
</html>
Try It Yourself

🌐 Browser Support

Named and numeric character references for these punctuation code points work in all modern browsers with UTF-8 documents:

Chrome 1+
Firefox 1+
Safari 1+
Edge 12+
Opera 4+
Android 4.4+
iOS Safari 1+

👀 Live Preview

Common punctuation from character references:

Quotes “Double” · ‘Single’
Dashes En – · em — · hyphen (-)
Ellipsis and bullet Wait… · • item
Guillemets « French » · ‹ single ›
Large type “A” — B

🧠 How It Works

1

Named punctuation entities

HTML defines readable names such as &nbsp;, &mdash;, and &hellip;. The browser decodes them to the corresponding Unicode characters in text nodes.

HTML markup
2

Numeric references

Every row has a unique scalar value. Hex &#x2014; and decimal &#8212; both yield the em dash when the reference is valid.

HTML markup
3

Escaping versus typography

&lt; and &amp; exist so markup parses correctly. Curly quotes and dashes are about typography and still use the same reference syntax.

Rules vs style
=

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:

📚 Articles and blogs

Proper quotes, dashes, and ellipses in long-form content without relying on editor auto-substitution alone.

🇺🇸 Localization

«/» versus curly quotes depending on language and locale conventions.

📄 Legal and contracts

Stable, explicit characters in templates where plain-text diffs must stay readable.

🔧 CMS and email HTML

ASCII-safe snippets that still render typographic punctuation in mixed pipelines.

📐 UI copy

Non-breaking spaces between values and units; en dashes in compact range labels.

🤖 Generated markup

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 &nbsp; for fixed pairs (number + unit, model names)
  • Use &ndash; 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 &nbsp; to force layout; use CSS for spacing and alignment
  • Use the soft hyphen (&shy;) 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 &apos; is for the typewriter apostrophe (U+0027), not always the preferred typographic apostrophe

Key Takeaways

1

Curly quotes, dashes, and ellipsis have standard named entities in HTML5

&ldquo; &mdash;
2

&nbsp; ties tokens together; it is not a generic width spacer

&nbsp;
3

Hex and decimal references match one Unicode character per valid reference

&#x2026;
4

Escaping &lt; / &amp; is about markup safety, not dash choice

5

Browse the full entity index for math, symbols, and more

❓ Frequently Asked Questions

They are character references for punctuation marks and related symbols—for example &ldquo;/&rdquo; for curly quotes, &mdash;/&ndash; for dashes, &hellip; for ellipsis, and &nbsp; for a non-breaking space. Use the Quick Reference for exact names and numeric codes.
Use &nbsp; 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.
&ndash; is the en dash, often used for ranges (9–5). &mdash; 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.
Use &amp; for a literal & in content. See the Ampersand page for rules in text versus attributes.
Yes in HTML5 for U+0027 (typewriter apostrophe). You can also use &#39; or type the character in UTF-8. For typography, many styles prefer the right single quotation mark &rsquo; (U+2019) when it acts as an apostrophe.

Explore More HTML Entities!

Discover 1500+ HTML character references — math operators, arrows, emojis, and more.

All HTML Entities →

About the author

Mari Selvan M P
Mari Selvan M P 🔗

Developer, cloud engineer, and technical writer

  • Experience 12 years building web and cloud systems
  • Focus Full Stack Development, AWS, and Developer Education

I write practical tutorials so students and working developers can learn by doing—from databases and APIs to deployment on AWS.

7 people found this page helpful