[Tex/LaTex] Problem displaying degrees celsius with siunitx and xelatex

siunitxxetex

I'm trying to discuss a temperature in a document where I'm using xelatex and siunitx.

       The temperature was further increased to \SI{200}{\degreeCelsius}.

When using xelatex this causes a hollow box to appear in place of the unit. When using pdflatex and a distribution supplied font it works fine. Is there a solution to this that I have missed?

This is a link to a character guide for the font — ITC Baskerville Std Roman — I'm using.
http://store2.adobe.com/cfusion/store/html/index.cfm?store=OLS-UK&event=displayFont&code=BASQ10005000

I've also tried Times New Roman with no joy.

I'm using a fully updated texlive 2011.

Many thanks,

MWE

 \documentclass{article}

 \usepackage{fontspec}                              
 \setmainfont[Mapping=tex-text]{Times New Roman}
 %\usepackage{xkeyval}
 %\usepackage{polyglossia}                          
 %\setdefaultlanguage[variant=british]{english}             
 %\usepackage{etoolbox} 
 \usepackage{siunitx}

 \begin{document}
 The temperature was \SI{200}{\degreeCelsius}.
 \end{document}

enter image description here

Best Answer

Expanding on Joseph's answer, you can find a matching font that has the required symbol; for instance, if your Times New Roman hasn't the ℃ symbol, then you can do

\newfontfamily{\tgtermes}[Ligatures=TeX]{TeX Gyre Termes}

\usepackage{siunitx}

\usepackage{newunicodechar}
\newunicodechar{℃}{{\tgtermes ℃}}
\sisetup{text-celsius = ℃}

thereby using the different font only for the character you need. Alternatively, you can also try faking the symbol:

\sisetup{text-celsius = $^\circ\mkern-1mu$C}

(adjust the amount of kerning).