2014-10-22 97 views
0

我想用C++ 这里打印的Unicode符号在控制台窗口是我的代码打印的Unicode

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

奇怪的是,这个代码给出正确的输出对于一些统一码,而不是(它打印问号而不是字符)。我无法弄清楚为什么。 为例工程this(\ u061F),而不是作品this(\ u2B24)

任何想法,我缺少的是什么?

编辑:

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

输出:Test-?-Test

+0

定义“作品”。尤其要区分显示和存储。你能复制那个角色吗,然后它被正确存储。 – 2014-10-22 08:22:19

+0

@干杯和hth。 Alf:对不起,我没有明白你的意思? – 2014-10-22 08:23:51

+0

在\ u2B24之前和之后添加一些普通文本。输出到控制台。从控制台复制并粘贴到例如Windows'“写”。或Word。我已经检查过“写入”可以在Windows 8.1中显示该字符,但可以通过键入2B24并按下Alt X来检查它。请注意,这是在一个组中,例如, Chrome浏览器处理不好。 – 2014-10-22 08:26:08

回答

0

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

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