Unicode is supported in .NET framework, and you can easily use Unicode's UTF-8, UTF-16 or other encodings (or character sets) of Unicode in your applications. The thing is that you need to be sure whether your application is able to represent the glyphs or not. If you application's font family includes the glyphs (for example) of Arabic then you can use them. Otherwise, it would always show "????" for each character, or it would show some other similar character.
They do not mean that your application or .NET framework doesn't support Unicode, instead it means that the character was not mapped to the code pages to represent it in glyph.
I have written an article that fully describes Unicode, how characters are mapped, and why are these "???" shown if a characters isn't mapped properly. Also, the solution provided there was that you should use such a font family that supports the character's code page. Which in most cases (and my recommendation also) is Segoe UI.
Read more on my article:
Reading and writing Unicode data in .NET[
^]
I hope the article helps you out. :)