<p>I'm attempting to display some text in my program using (say) Windows GDI and some of the unicode characters are displayed as question marks? What is up?</p>

<p>See also: <a href="https://stackoverflow.com/questions/217228/what-does-it-mean-when-my-text-is-displayed-as-boxes">What does it mean when my text is displayed as boxes?</a></p>

Basically you have corrupted the text. You are taking Unicode text in one encoding and then have converted it to another encoding without checking that target encoding includes all of the characters in the source text. Having done so you have got a bunch of gibberish.
Ways to do this include:
Treating UTF-8 text as ANSI (without converting into a valid code-page first)
Converting Unicode text into a code-page without checking if the code-page has the right characters in it.