在Windows控制台中打印unicode

时间:2014-10-22 08:08:52

标签: c++ windows unicode

我正在尝试使用c ++在控制台窗口中打印Unicode符号 这是我的代码

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

奇怪的是,这段代码为某些Unicodes提供了正确的输出,而不是(它打印问号而不是字符)。我无法弄明白为什么。 例如适用于this(\ u061F),不适用于this(\ u2B24)

任何想法我缺少什么?

修改

代码:std::wcout << L"Test-"<<L"\u061F"<< L"-Test" << std::endl;

输出:Test-?-Test

1 个答案:

答案 0 :(得分:0)

这可能取决于配置为由控制台窗口使用的字体。如果正在使用的字体没有您正在引用的Unicode条目,则不会显示它。您可以在命令窗口的属性中检查您正在使用的字体。然后在MS提供的字符映射应用程序中打开该字体,您可以检查哪些代码可用。

顺便说一句,你可以add fonts to the Console window。但是,您可能需要记住,运行软件的其他人可能没有配置与您相同的字体。