Как распечатать MACRON / Unicode в консоли Windows - PullRequest
0 голосов
/ 01 марта 2019

Так что в настоящее время я много работаю с Unicode в последнее время.Я видел других, сталкивавшихся с той же проблемой, но до сих пор ни один ответ не решил мою проблему.

На данный момент цель состоит в том, чтобы иметь возможность напечатать: ¯ в моем окне консоли Windows.Символ называется «MACRON», а его номер в Юникоде - U + 00AF.

Сначала я просто написал: cout << "some irrelevant text lorem ipsum etc... \u00AF" << endl;

Но это привело к обратному эффекту с отображением окна консоли Windows странное неописуемое уродливое (без обид) выглядящее Т.

Я также пытался использовать wcout wcout << L"some more irrelevant text lorem ipsum etc... \u00AF" << endl;, но результат тот же.

Есть какие-нибудь мысли о том, почему мое окно исходного кода / консоли не может напечатать символ MACRON?

Исправление для этого символа хорошо, но в целом я столкнусь с более странным и странным символом Unicode, поэтому мне может понадобитьсяболее широкое применимое решение без загрузки / изменения чего-либо вне исходного кода.

Программирование на C ++ в Code :: Blocks 17.12 IDE

1 Ответ

0 голосов
/ 01 марта 2019

Используйте _setmode(..., _O_U16TEXT);

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

...

_setmode(_fileno(stdout), _O_U16TEXT);
std::wcout << L"\u00AF\n";

Просто прочитайте предостережения на странице документов, чтобы убедиться, что вы довольны компромиссами при его использовании (например, простой printf будетбольше не работает в этом режиме):

https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/setmode?view=vs-2017

...