HTML punctuation entities are character references for typographic punctuation — curly quotes, en and em dashes, ellipsis, non-breaking space, guillemets, bullets, primes, and marks from the General Punctuation block.
Remember
Named (common) “ ” – — …
Guillemets « » ‹ ›
CSS example content: "\2014" (em dash)
Prefer UTF-8 type the glyph when the whole toolchain is Unicode-safe
Prefer named forms when HTML defines them; use hex or decimal from the table when there is no short name. For digits and fractions, see HTML Number Entities; for broader symbols, see HTML Symbol Entities.
Reference
Quick Reference
Search by symbol, Unicode, 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
⁞
⁞
-
When to Use Which
Situation
Use
Curly double quotes
“ … ”
Curly single quotes / apostrophe
‘ … ’ (or ' for U+0027)
Numeric ranges
– (en dash)
Break in thought / attribution
— (em dash)
Keep number + unit together
(e.g. 10 kg)
Ellipsis / pause
…
French / Spanish-style quotes
« … »
Markup safety (<, &)
<, & — not typography choice
See it
Live Preview
Common punctuation from character references.
Quotes“Double” · ‘Single’
DashesEn – · em — · hyphen (-)
Ellipsis and bulletWait… · • item
Guillemets« French » · ‹ single ›
Large type“A” — B
Code
Complete HTML Example
One page that shows curly quotes, en and em dashes, ellipsis, a non-breaking space, and a CSS em dash. Use View Output or open the live editor.
Quotes + Dashes + Ellipsis + NBSP + CSS
Named punctuation entities in prose, plus a stylesheet-injected em dash.
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>HTML Punctuation Entities</title>
<style>
.em-dash::after {
content: "\2014";
}
</style>
</head>
<body>
<p>“We use curly quotes” — and an em dash.</p>
<p>Ranges: 9–5 · Pause… done.</p>
<p>Non-breaking: 10 kg</p>
<p>CSS em dash: A<span class="em-dash"></span>B</p>
</body>
</html>
“We use curly quotes” — and an em dash.
Ranges: 9–5 · Pause… done.
Non-breaking: 10 kg
CSS em dash: A—B
How It Works
1. Quotes:“ / ” are named HTML5 entities for curly double quotation marks.
2. Dashes:— is the em dash; – is the en dash (often used in ranges like 9–5).
3. Spacing: is a non-breaking space — it keeps 10 and kg on the same line.
4. CSS:\2014 in content injects an em dash (U+2014). Escapes belong in stylesheets, not as HTML entities.
5. Same glyph: named, hex, decimal, CSS, and typed UTF-8 all resolve to the same Unicode character when the code point matches.
Pitfalls & Tips
Common mistakes when working with punctuation entities.
Named
Prefer names when available
— and … are clearer than numeric forms. Use the table for symbols without a short HTML5 name.
Dashes
Hyphen ≠ en ≠ em
Do not confuse hyphen-minus (-), en dash (–), and em dash (—). They look different and mean different things.
NBSP
Do not spam
Use it for fixed pairs (number + unit). Use CSS for layout spacing — not non-breaking spaces.
Code
Keep straight quotes in code
Do not auto-replace quotes inside <code>, URLs, or attribute values without checking — curly quotes can break syntax.
CSS vs HTML
Do not mix escapes
\2014 belongs in CSS. — / — belong in HTML.
Safety
Escape vs typography
< and & protect markup. Curly quotes and dashes improve reading — they are not substitutes for escaping.
Compatibility
Browser Support
Named and numeric punctuation character references work in all mainstream browsers with UTF-8 documents. Visible glyphs depend on font coverage for rarer General Punctuation marks.
✓ Universal support
HTML Punctuation Entities
Encode with named, hex, decimal, CSS escape, or type the character — same code point everywhere encoding is supported.
100%Browser coverage
Google ChromeSupported
Yes
Microsoft EdgeSupported
Yes
Mozilla FirefoxSupported
Yes
Apple SafariSupported
Yes
OperaSupported
Yes
Internet ExplorerAll versions
Yes
Punctuation entitiesFull support
Bottom line: Prefer named entities when listed. Use numeric forms from the table for rarer marks. Use CSS escapes only inside content.
Numeric: use hex / decimal from the Quick Reference when a short name is missing.
CSS: use escapes such as \2014 inside content for generated text.
Rule: escape for safety; choose curly marks for typography — do not confuse the two.
One line: named when available → numeric from the table → CSS escape only in content.
Frequently Asked Questions
Character references for punctuation and related marks: curly quotes (“ ”), en and em dashes (– —), ellipsis (…), non-breaking space ( ), guillemets, bullets, and other General Punctuation symbols. They use the same &name;, &#…;, and &#x…; mechanisms as any other HTML entity.
Use to keep short tokens together, such as a number and unit (10 kg) or initials. Do not replace every ordinary space — that harms wrapping and readability.
– is the en dash, often used for numeric ranges (9–5). — is the em dash, often used for a break in thought or attribution. Follow your locale and house style.
Write & for a literal ampersand in content. In attributes, escape quotes with " or use the other quote style. That is markup safety — separate from choosing curly punctuation for typography.
Yes — HTML5 includes ' for U+0027 (typewriter apostrophe). You can also use ' or type the character in UTF-8. Many styles prefer ’ (U+2019) when it acts as a typographic apostrophe.
HTML entities go in markup. CSS uses backslash hex in content on ::before/::after (for example \2014 for an em dash). Prefer HTML for body text and CSS when the design injects the glyph.
🤔
Did you know?
Common punctuation has short HTML5 names — “, ”, –, —, …, . Escaping < / & is about markup safety; curly quotes and dashes are about typography. Both use the same entity syntax.