Вам нужно использовать std::wcout
и использовать UTF-16, кодируя шестнадцатеричные байты (как отвечает Марк), но я не могу гарантировать, что любой из ваших символов будет отображаться правильно в Windows (до Vista?), Поскольку Windows Консоль никогда не была предназначена для такого рода вещей. Вы можете использовать wcout
с Visual Studio и, возможно, Cygwin, но я не думаю, что MinGW поддерживает это. Убедитесь, что вы используете широкие литералы символов: L"string"
.
Кроме того, вы можете использовать препроцессор для предоставления правильных определений констант для каждой платформы. Я полагаю, что будет более трех ASCII на старых платформах, UTF-8 на более современных и UTF-16 (с wcout
) на новых Windows.