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