HTML entity for the degree sign °

° / ° / °

° is the HTML entity for the degree sign °, U+00B0 DEGREE SIGN, and ° and ° are its numeric references. In UTF-8 it’s C2 B0.

Character    ° U+00B0 DEGREE SIGN
Named        °
Numeric      °     °
UTF-8        C2 B0

Encoding 100 °C, a 90° turn, with a no-break space before °C, gives:

100 °C, a 90° turn

Spacing

The SI Brochure, the BIPM’s reference for SI units, puts a space between a number and its unit, and degrees Celsius are no exception: 100 °C. Plane angles are: 90°, with no space. A   before °C keeps the number and the unit on one line. Kelvin takes no degree sign: 300 K.

Look-alikes

°  U+00B0  DEGREE SIGN                   °
º  U+00BA  MASCULINE ORDINAL INDICATOR   º    1º in Spanish and Portuguese
˚  U+02DA  RING ABOVE                    ˚    (HTML5)
℃  U+2103  DEGREE CELSIUS                ℃

The ordinal indicator looks almost the same in many fonts, often with an underline, but it’s a letter: a search for 100°C won’t find 100ºC. ℃ and ℉ are compatibility characters; Unicode’s NFKC normalization turns ℃ into °C, the two characters to write in the first place.

In CSS, JSX and Markdown

.temp::after { content: "\a0\b0 C"; }    /* no-break space, °, C */

The space after \b0 ends the escape and doesn’t appear in the output; without it, \b0C would be read as one hex number, U+0B0C.

JSX decodes &deg; in text, so <span>{temp}&deg;C</span> works; in braces write {temp + '\u00B0C'}. CommonMark decodes &deg; in Markdown text and leaves it literal in code spans.

Browsers also read &deg without its semicolon, one of the legacy names kept for old pages, so 20&deg shows 20° in HTML. This tool, CommonMark and JSX need the semicolon.

Try it in the HTML Entity Encoder & Decoder

Encoded

3 characters become a reference, named where a name exists and &#x…; where one doesn’t.

Encoding always escapes &amp;, &lt;, &gt;, &quot; and &#39; — the characters that mean something to an HTML parser.

Runs in your browser. Nothing you enter is sent anywhere.