Я хочу напечатать музыкальный плоский символ: ♭
(U+266D) на консоли. Для этого я использую wchar_t
и wprintf()
, но всегда выводится ?
вместо ♭
. Я также пробовал setmode()
и setlocale()
, как вы можете видеть в коде, но ни один из них не увенчался успехом.
int main(){
_setmode(_fileno(stdout), _O_U16TEXT);
//setlocale(LC_ALL, "en_US.UTF-8");
wprintf(L"\u226d");
}
en_US.UTF-8
? Имена локалей меняются между ОС и версиями одной и той же ОС. Примечание. UTF-8 — это другая кодировка O_U16TEXT. Значит, вы используете несовместимые кодировки. Является ли ваша консоль консолью UTF-8? Он настроен на использование символов UTF-8? Что насчет шрифта? Примечание: этот вопрос помечен как повторяющийся, но если вы не используете Windows, вы можете отредактировать свой вопрос и попросить открыть его повторно. - person Giacomo Catenazzi   schedule 04.09.2019