Как напечатать 4-байтовый символ Unicode в консольном приложении Windows C ++? - PullRequest
0 голосов
/ 02 апреля 2020

Как напечатать "?" emoji (код Unicode 1F469) в консольном приложении Windows с использованием C ++?

В приведенном ниже примере я следовал Печать текста UTF-8 в консоль Windows .

#include <iostream>
#include <io.h>
#include <fcntl.h>

int main()
{
    _setmode(_fileno(stdout), _O_U16TEXT);
    std::wcout << L"face: ?\n";
    return 0;
}

Однако она печатает только два вопросительных знака:

console screenshot - two questionmarks.

"Командная строка "(cmd.exe) приложение не может отобразить этот символ, поэтому я использую Windows Terminal , который может отобразить его:

rendered face emoji in Windows Terminal

1 Ответ

0 голосов
/ 02 апреля 2020

Консоль Windows не может отображать символы вне плоскости 0. Терминал Windows был разработан для улучшения ограничений консоли Windows.

Дополнительная информация: Как использовать символы Юникода в Windows командной строке?

...