Поскольку вы говорите о Windows, вы говорите консольные окна .
Окна консоли Windows основаны на Unicode, точнее UCS-2 (базовая многоязычная плоскость, по сути оригинальный 16-битный Unicode).
Вопреки тому, что предлагается в других ответах, вы не можете сделать больше по отношению к. результаты с std::wcout
, чем с std::cout
. Стандартные широкие выходные потоки просто переводятся в однобайтовую кодировку выполнения программы. Который по умолчанию в Windows является кодировкой символов OEM (которую можно настроить с помощью недокументированного ключа реестра).
Но вы можете вывести Unicode через консольные функции Windows API.
Примечание: Не рекомендуется устанавливать для консольных окон значение UTF-8 . Затем интерпретатор команд [cmd.exe] просто молча игнорирует большинство команд. По крайней мере, в Windows XP и более ранних версиях.
Я только что установил OEM на Windows ANSI Western (через упомянутый недокументированный раздел реестра), и он работает для большинства целей, но, конечно, не на китайском. Это кодовая страница 1252. В качестве альтернативы вы можете сделать это вручную с помощью команды chcp 1252
в каждом экземпляре интерпретатора команд, а также другими способами.
Приветствия & hth.,