1
如何在C++ 11中打印(cout
/wcout
/...)char32_t到控制台?将char32_t打印到控制台
下面的代码打印十六进制值:
u32string s2 = U"Добрый день";
for(auto x:s2){
wcout<<(char32_t)x<<endl;
}
如何在C++ 11中打印(cout
/wcout
/...)char32_t到控制台?将char32_t打印到控制台
下面的代码打印十六进制值:
u32string s2 = U"Добрый день";
for(auto x:s2){
wcout<<(char32_t)x<<endl;
}
首先,我不认为wcout
应该打印为字符什么,但char
和wchar_t
。 char32_t
既不是。
下面是打印个人wchar_t's
一个示例程序:
#include <iostream>
using namespace std;
int main()
{
wcout << (wchar_t)0x41 << endl;
return 0;
}
输出(ideone):
A
目前,它是不可能得到在控制台一致的Unicode输出,即使在主要操作系统。通过cout
,wcout
,,wprintf()
等简化的Unicode文本输出将不会在没有大的黑客攻击的Windows上工作。在Windows控制台中获取可读的Unicode文本的问题在于具有并能够选择正确的Unicode字体。 Windows的控制台在这方面已经很糟糕。请参阅this answer of mine并点击链接。
什么是您的操作系统? – 2013-04-07 00:58:18
我想有一个操作系统独立解决方案(如果可能的话)。我在Linux x86_64上。 – 2013-04-07 00:59:01
不可能。如果没有重大黑客攻击,将无法在Windows上运行。另外,我不认为'wcout'应该打印为字符而不是'char'和'wchar_t'。 'char32_t'既不是。 – 2013-04-07 01:01:20