Skip to main content

HTML Guide

A numeric character reference expanded to the C1 controls range.

A numeric character reference is pointing to a C1 control code point (U+0080–U+009F), which is disallowed in HTML.

Numeric character references like &#nnn; or &#xhhhh; must resolve to valid Unicode characters.

The C1 control range U+0080–U+009F contains non-characters/control codes, so validators flag them.

Common causes: copying Windows-1252 bytes and encoding them as numeric references (e.g., — for an em dash) or misusing hex values (e.g., for a right single quote).

In HTML, use the proper Unicode character, a valid named character reference, or the correct Unicode code point. Examples: use the actual “—” or — (U+2014), “’” or ’ (U+2019), “€” or € (U+20AC). If you must use numeric references, use the correct code points: — or for em dash, not —; ’ or for right single quote, not .

HTML Examples

Example that reproduces the issue

<!doctype html>
<html lang="en">
<head>
  <title>Bad C1 NCR</title>
</head>
<body>
  <p>Bad dash: &#151;</p>
  <p>Bad quote: &#x92;</p>
</body>
</html>

Fixed example

<!doctype html>
<html lang="en">
<head>
  <title>Fixed NCRs</title>
</head>
<body>
  <p>Good dash: &mdash; or &#8212; or &#x2014;</p>
  <p>Good quote: &rsquo; or &#8217; or &#x2019;</p>
  <p>Euro: &euro; or &#8364; or &#x20AC;</p>
</body>
</html>

Learn more:

Related W3C validator issues