C# Unicode string output

First, change the output encoding to UTF8:

Console.OutputEncoding = Encoding.UTF8;
Console.WriteLine("добры дзень");

Now you’ll still see question marks. The reason is that the default console’s font doesn’t support Cyrillic letters. Change the font of the console:

enter image description here

If you’re lucky, you should find a different font with Unicode support:

enter image description here

Change the font, and you should be able to see your text:

enter image description here

In the general case, if you want to display all Unicode characters reliably, the Console is probably not right for you. See also: C# console font (the comments are interesting too)

Leave a Comment