在 Xcode 项目中,如果我std::cout
用来写入控制台,则输出很好。
但是,如果我使用std::wcout
我没有输出。
我知道这是 C++ 中的一个棘手问题,我一直在谷歌搜索以尝试在 Xcode 案例中找到特定的解决方案。我发现建议应该起作用的几件事是:
std::cout.imbue( std::locale("") );
和
std::setlocale(LC_ALL, "");
这些都没有任何区别。在我辞职花接下来的几周研究 facets API 以便能够写入控制台之前,我想我会在这里与尊敬的观众核实一下。
[更新]
我认为我一直遇到的问题的原因实际上与我尝试打印的一些字符串的特定编码有关。
如果我只发送一个字符串文字,使用L"my string" syntax
它就可以了!看来这是使用 UTF32 - little endian encoding。
但是,我一直将它与使用 NSUTF32BigEndianStringEncoding 编码从 Objective C++ 代码传递的字符串混合。正是这种编码组合导致了问题。
我想我们可以认为这件事已经结束了。谢谢阅读。