如何在 C++11 中将( cout
/ / ...) char32_t 打印到控制台?wcout
以下代码打印十六进制值:
u32string s2 = U"Добрый день";
for(auto x:s2){
wcout<<(char32_t)x<<endl;
}
首先,我认为除了and之外不wcout
应该打印任何字符。也不是。char
wchar_t
char32_t
这是一个打印 individual 的示例程序wchar_t's
:
#include <iostream>
using namespace std;
int main()
{
wcout << (wchar_t)0x41 << endl;
return 0;
}
输出(ideone):
A
目前,即使在主要操作系统中,也不可能在控制台中获得一致的 Unicode 输出。cout
通过, wcout
,printf()
等简单的Unicode 文本输出wprintf()
在没有重大黑客攻击的情况下无法在 Windows 上运行。在 Windows 控制台中获取可读的 Unicode 文本的问题在于拥有并且能够选择正确的 Unicode 字体。Windows 的控制台在这方面非常糟糕。请参阅我的这个答案并点击其中的链接。