Я пишу новое приложение командной строки на C++. Одной из платформ, которую мы поддерживаем, конечно же, является Windows.
Консоль Windows по умолчанию использует кодовые страницы OEM в зависимости от локали (например, на моей машине это CP437/DOS.Western). Я думаю, если бы это была кириллическая версия Windows, то это был бы CP866 и так далее. Эти кодовые страницы OEM содержат только 256 символов)
Я думаю, что это означает, что консоль Windows переводит нажатия клавиш ввода в символы на основе кодовой страницы по умолчанию. (И, в зависимости от выбранных в данный момент шрифтов, при наличии соответствующего глифа он отображается).
- В таком случае имеет ли смысл использовать в моем приложении типы wmain/wchar_t и wide char?
- Есть ли преимущество использования широких типов? Или есть серьезная проблема, если используется только char *?
- Когда используются широкие типы символов, какова кодировка аргументов командной строки и строк среды - (wchar_t * argv [] и wchar_t * envp []), я имею в виду. Преобразованы ли они в UTF-16 с помощью Windows CRT или остались нетронутыми?
Спасибо за ваш вклад.