Перейти к содержимому
Заметил на одном компьютере что вместо русских букв в командной строке да и в некоторых программах отображаются знаки вопроса.
В первую очередь необходимо убедиться, что языком системы выбран русский язык, для этого в «Пуск» — «Панель управления» — «Часы, язык и регион» — «Язык и региональные стандарты«, вкладка «Дополнительно«, раздел «Язык программ, не поддерживающих Юникод» необходимо нажать «Изменить язык системы» и выбрать «Русский (Россия)» и нажать «ОК» во всех окнах.
Также для решения проблемы откроем редактор реестра набрав в командной строке «regedit.exe«.
Командную строку можно открыть нажав по ярлыку в меню «Пуск» — «Все программы» — «Страндартные» — «Коммандная строка» или набрав «cmd» в поисковой строке меню «Пуск«.
В редакторе реестра необходимо открыть ветку:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
и изменить значения параметров 1250 (с c_1250.nls на c_1251.nls), 1251 (убедится что c_1251.nls), 1252 (с c_1252.nls на c_1251.nls).
Все, после перезагрузки компьютера русские буквы будут отображаться корректно.
Я сам столкнулся с этой проблемой, искал решение пипец как долго. Тебе надо зайти в Region cправа надпись «additional date, time…» как на скрине, только у меня все на инглише у тебя все должно быть всё по-русски. Потом «administrative»/ «change system locate», и смени на русский. Короче, просто следуй скринам
ответ дан 19 мар 2021 в 16:53
2
Я приведу пример для Win10, для других систем аналогично, только названия пунктов будут другие.
Пуск/Параметры/Время и язык(распознавание голоса, регион, дата)/Регион/Дополнительные параметры даты, времени, региона/Региональные стандарты/Дополнительно/Текущий язык программ, не поддерживающий Юникод — Изменить язык системы
И тут Английский(США) поменять на Русский(Россия)
Экспериментальную галочку напротив Юникода ставить не нужно. У меня были проблемы связанные как раз с этой галочкой. Нужно было найти ее и отключить.
Если не поможет, нашел вариант с редактированием реестра, но у меня до этого не дошло.
Из проблем остались вопросики там где должны выводиться денежные знаки для текущего региона, пока не победил. Код на C# для проверки
Console.WriteLine(«C format: {0:C}», 2.50); // Валюта
Картинка что где жать
ответ дан 29 окт 2020 в 11:29
1
Win 10
У меня тоже были знаки вопроса в консоли. Мне как раз помогло переключение даного параметра на Английский(США)
Пуск/Параметры/Время и язык(распознавание голоса, регион, дата)/Регион/Дополнительные параметры даты, времени, региона/Региональные стандарты/Дополнительно/Текущий язык программ, не поддерживающий Юникод — Изменить язык системы(с русского на английский)
И вместо абракадабры появились нормальные слова =)
ответ дан 17 сен 2021 в 7:17
3
Michael Butlitsky
Учитель
18:23:41, 28 апреля 2015
Зайдите в свойства командной строки: клик по иконке окна командной строки в левом верхнем углу, затем в выпавшем меню кликнуть Свойства.
В окне свойств выберите вкладку Шрифт и из списка шрифтов выберите Lucida Console, нажмите Ок.
В этом же окне вы можете подобрать удобный вам размер шрифта командной строки.
-
Screenshot_2015-04-28_18.23.00.png
— Окно свойств командной строки Windows
Это практически первый вопрос, которым задаются юниоры С++, когда пытаются запустить свою первую консольную программу под виндой.
Ответов на него тут уже была целая пачка.
Суть в том, что в виндовой консоли может быть 2 русские кодировки (cp866 и cp1251) (не уверен, но может быть консоль винды научилась уже нормально работать с UTF8, если научилась, то считайте, что добавилась еще одна кодировка). Причем по умолчанию используется cp866. Кодировку консоли можно менять из самой консоли или программно.
При выводе текста в консоль никаких преобразований кодировок не происходит. В какой кодировке у вас написаны исходники — та и выводится. И если кодировка консоли и кодировка исходников не совпадают, то будет не читабельный текст.
Самый оптимальный и самый сложный вариант — в программе узнать кодировку консоли и перед выводом конвертировать текст в эту кодировку. Так же обратную операцию производить при вводе. В этом случае исходники программы лучше всего писать в UTF8 и использовать wchar_t.
Самый простой, дебильный и не всегда работающий (не будет работать если изменена кодировка консоли) — писать исходники в cp866.
Немного чуть более сложный, но не правильный — поменять кодировку консоли из программы на ту в которой написаны исходники.
Самый надежный вариант — не используйте русский в консольных программах — только английский. Сомневаюсь, что вам придется когда-то писать профессиональные консольные утилиты, которые бы умели адаптироваться к разным кодировкам, так что, возможно, нет смысла углубляться в эту тему. В GUI приложениях этой проблемы нет.
Проблема: в англоязычной версии Windows даже с установленным русским языком не отображаются кириллические символы, вместо них печатаются знаки вопроса ???
Решение:
Выполнить следующую команду
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
Данное решение, как справедливо было замечено, будет работать только до перезапуска консоли.
Решение 2
В этом решении будет рассказано как решить этот вопрос глобально.
Win + R -> Intl.cpl -> OK
На вкладке «Дополнительно»(«Administrative») Измените язык для программ, не поддерживающих Юникод — выберите Русский (Russian)
Перезагрузите систему