Приветствую всех. Все начинающие программисты начинают с создание своих приложений в консоли. И у многих из них возникает проблема в отображении русских символов в консоли, у одних в место них могут выводиться вопросительные знаки, у других могут в место кириллице выводится иероглифы. Сейчас мы разберемся более подробно с этой проблемой. Во первых она возникает в основном у тех кто пользуется либо старой OS семейства windows, и у тех у кого windows не лицензионная. Все дело в том что по умолчанию должна стоять кодировка UTF8 однако те кто создавали сборку OS могли это попросту забыть, и она может быть другой. Из за этого мы и видим в консоли абракадабру, а не то что ожидаем.
Во первых стоит помнить что: Английский язык и базовые символы одинаковы во всех кодировках однако, при сохранении текста в кодировке UTF добавляется специальный маркер файла, по которому текстовые редакторы определяют кодировку текста. Русские буквы нельзя сохранять в кодировке ASCII.
Как нам вывести русский текст в консоль?
Для этого мы можем в коде программы явно указать с какой кодировкой мы желаем работать:
Для этого в код программы необходимо вставить следующую строку.
1 |
Console.OutputEncoding = System.Text.Encoding.UTF8; |
По аналогии можно так же и сохранять текст в соответствующей кодировки к примеру в фаил.
Есть еще один вариант, это настроить кодировку в системе.
Нажмите одновременно клавишу WIN+R и напишите в открывшемся окне cmd и нажмите кнопку ОК.
Либо нажмите Пуск>Служебные-Windows>Командная строка.
В открывшейся консоли набираем:
1 |
chcp 65001 |
по умолчанию должна стоять:
1 |
chcp 866 |
Проверить какая стоит сейчас кодировка можем ввести команду
1 |
chcp |
Таким образом мы разобрались с тем как вывести информацию в нужной нам кодировке.