Why are you trying to use the character map directly like that? Is there a limitation on your resource compiler or something? As of x11 'char32_t' exists specifically to accommodate Unicode characters.
OK, you can still use a 'wchar_t' or 'std::wstring' the only difference is that they don't specify the character set.
That question mark is a filler for when Windows can't resolve the text that you fed it, this happens when you pass 1-byte ASCII characters where 2-byte characters are being read due to the spacing of the characters in memory. The value of the ASCII character is read in as the high order byte but then where the system expects a low order byte there is a null.