如何在Windows控制台中打印MACRON / Unicode

时间:2019-03-01 12:58:23

标签: c++ unicode character-encoding console-application codeblocks

因此,当前我最近正在使用Unicode。 我见过其他人也面临同样的问题,但到目前为止,没有答案能解决我的问题。

目前的目标是能够在Windows控制台窗口中打印:¯。 该字符称为“ MACRON”,其Unicode码为U + 00AF。

起初,我简单地写道:cout << "some irrelevant text lorem ipsum etc... \u00AF" << endl;

但是,这最终反省了我,Windows控制台窗口显示了一个看上去很T的古怪难以形容的丑陋(无罪)

我也尝试过使用wcout wcout << L"some more irrelevant text lorem ipsum etc... \u00AF" << endl;  但结果是一样的。

关于我的源代码/控制台窗口为何无法打印MACRON字符的任何想法?

对此字符的修复是好的,但是总的来说,我会遇到奇怪的和奇怪的Unicode字符,因此我可能需要一个更广泛的适用解决方案,无需下载/更改源代码之外的任何内容。

在Code :: Blocks 17.12 IDE中使用C ++编程

1 个答案:

答案 0 :(得分:1)

使用_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