【发布时间】:2014-10-22 08:08:52
【问题描述】:
我正在尝试使用 c++ 在控制台窗口中打印 Unicode 符号 这是我的代码
_setmode(_fileno(stdout), _O_U16TEXT);
std::wcout << L"\u2B24";
奇怪的是,这段代码为某些 Unicode 提供了正确的输出,而不是(它打印问号而不是字符)。我不知道为什么。 例如适用于this(\u061F) 而不适用于this(\u2B24)
知道我缺少什么吗?
编辑:
代码:std::wcout << L"Test-"<<L"\u061F"<< L"-Test" << std::endl;
输出:Test-?-Test
【问题讨论】:
-
定义“作品”。特别要区分显示和存储。你能把那个字符复制回来,然后它就被正确存储了。
-
@ 干杯和hth。 - Alf:对不起,我没明白你的意思?
-
在\u2B24前后添加一些普通文字。将其输出到控制台。从控制台复制并粘贴到例如Windows 的“写入”。或字。我已经检查过“写”可以在 Windows 8.1 中显示该字符,但您可以通过键入 2B24 并按 Alt X 来检查它。请注意,这是在一个组中,例如Chrome 浏览器处理不好。
-
它当然可能取决于控制台窗口中配置的字体。如果字体没有您引用的 Unicode 条目,它将不会显示。您可以通过查看控制台窗口属性来检查这一点,并使用字符映射来验证字体是否具有该字符。
-
@icabod:是的,伙计,你是对的。您可以发布作为答案!