MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Как изменить кодировку в консоли Visual Studio 2017"
Answer 804536
На самом деле, кодовая страница для консольных приложений не является настройкой, которую можно изменить через Visual Studio. Дело в том, что не существует никакой "консоли Visual Studio" - при запуске консольного приложения из студии используется самая обычная консоль ОС, та же самая, что и для cmd.exe или любого другого консольного приложения (она может отличаться внешне, в зависимости от настроек, но суть та же). Кодовую страницу для нее можно задать:
На уровне ОС, установкой определенных ключей реестра
В конкретном сеансе командной оболочки, выполнением команды
chcp 1251
. Таким образом, можно изменить действие при запуске приложения (в разделе "Отладка" в свойствах проекта) наc:\windows\system32\cmd.exe /k chcp 1251 && $(TargetPath)
для достижения требуемого эффекта. Но тогда отладчик будет отлаживать cmd.exe, а не нашу программу :(Для конкретного консольного приложения через параметр реестра
HKCU\Console\(путь к приложению)\CodePage
(REG_DWORD).Используя последний способ и шаблоны проектов, можно автоматизировать установку кодовой страницы для приложений, собираемых в студии.
Создадим bat-файл следующего содержания:
set MYSTRING=%~1 reg add "HKCU\Console\%MYSTRING:\=_%" /v CodePage /t REG_DWORD /f /d 1251
Поместим его, допустим, в папку c:\scripts\codepage.bat
Создадим проект консольного приложения под шаблон, допустим Cp1251ConsoleApplication
В свойствах проекта, в разделе События построения - Событие после построения, введем в параметр Командная строка значение:
c:\scripts\codepage.bat "$(TargetPath)"
Нажмем в меню Файл - Экспорт шаблона или Проект - Экспорт шаблона, зададим параметры шаблона (галка "Автоматически импортировать в Visual Studio" должна быть отмечена), и нажмем Готово
Теперь при создании нового проекта в в разделе Visual C++ появится шаблон Cp1251ConsoleApplication. Если создавать проект на его основе, при сборке проекта в реестре автоматически будет устанавливаться кодовая страница консоли для этого приложения. Недостаток способа в том, что этот раздел реестра будет замусориваться, если создавать много проектов.
Также, при задействовании команды Запуск без отладки способ не сработает: вместо вашего приложения будет запускаться cmd.exe; для него кодовая страница настраивается отдельно - созданием точно такой же ветки в реестре с путем к cmd.exe.
Подробнее о настройках консоли: Understanding Windows Console Host Settings
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.