Подтвердить что ты не робот

Показать символы UTF-8 в консоли

Как я могу печатать символы UTF8 в консоли?

С Console.Writeline("îăşâţ") я вижу " îasât в консоли.

4b9b3361

Ответ 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

Ответ 6

Простое решение, которое я нашел ниже

Console.Write("îăşâţ");