— — Em Dash

Code point 8212 · U+2014 · typography

— is the named character reference for the em dash, code point 8212. Written as a decimal reference it is —; as a hexadecimal reference, —. All three resolve to the same glyph, and the choice between them is about what survives your toolchain rather than about meaning.

Character—
Named—
Decimal—
Hexadecimal—

Which form to write

Named references are readable and self-documenting, which is why hand-written markup uses them. Numeric references — decimal or hexadecimal — are unambiguous and immune to entity-table gaps, which is why generators, serialisers and sanitisers prefer them. HTML5 recognises the named form in both HTML and XHTML syntax, and browsers resolve any of the three identically at render time.

FormBytesSurvivesTypical producer
—7Any HTML5 parserHand-written templates
—7Every HTML and XML parserOlder escape libraries
—8Every HTML and XML parserModern serialisers

What this site's encoder does with it

Paste the em dash into the encoder and pick a style: with named selected the output is —. Note the fallback: the encoder only has named forms for the four markup-critical characters, so a character that does have a named entity still comes out as a hexadecimal reference here. That is deliberate — the output stays valid even when a downstream parser does not know the name.

This character never has to be escaped in HTML text. Escaping it is a style decision — useful when the source must stay pure ASCII, or when the file travels through systems that assume a Latin-1 encoding.

Mistakes worth avoiding

Questions about —

What is — in decimal and hex?

Decimal —, hexadecimal —. All three reference code point 8212 and render the same character, “—”.

Do I have to use the named form?

Nothing compels the named form. Numeric references work everywhere and survive editors that mangle entity names, which is why minifiers and escape tools emit them by default.

Which form does this site's encoder output for —?

It emits — into the escaped output. Only &, <, > and " have named forms in the encoder, so every other character is written as a hexadecimal numeric reference even when a named entity exists.

Where does &mdash; break?

It breaks when the surrounding text already assumes an ASCII-only pipeline. Some legacy systems re-encode the ampersand, turning one entity into two and exposing the raw code in the rendered page.