С Console.Writeline("îăşâţ") я вижу " îasât в консоли.
Ответ 1
Есть некоторые хаки, которые вы можете найти, которые демонстрируют, как писать многобайтовые наборы символов в Консоль, но они ненадежны. Они требуют, чтобы ваш консольный шрифт был тем, который его поддерживает, и, в общем, я бы избегал этого. (Все эти методы ломаются, если ваш пользователь не выполняет дополнительную работу с их стороны... поэтому они ненадежны.)
Если вам нужно написать выход Unicode, я настоятельно рекомендую сделать приложение GUI для обработки этого, вместо использования консоли. Достаточно просто сделать простой графический интерфейс, чтобы просто написать ваш вывод в элемент управления, который поддерживает Unicode.
Ответ 2
Console.OutputEncoding = Encoding.UTF8;
Ответ 3
Вы не можете печатать символы Unicode в консоли, он поддерживает только символы, доступные на текущей кодовой странице. Символы, которые недоступны, преобразуются в ближайший эквивалент или знак вопроса.
Ответ 4
Использование Console.OutputEncoding будет достаточно для этого. Все строковые объекты в .NET по умолчанию являются unicode, поэтому изменение кодировки вывода для консоли в UTF-8 будет работать так, как вы хотите, в современных установках Windows.
Кодировка по умолчанию в консоли зависит от конфигурации, но это, скорее всего, IBM437 для американского языка или локальной кодовой страницы.
Ответ 5
Попробуй это:
using System.Diagnostics
...
Debug.WriteLine(..);// will output utf-8 charset