2013-07-05 24 views
0
#include <iostream>       
#include <clocale>        
#include <string>        

int main() {         
    std::setlocale(LC_ALL, "en_US.utf8");  
    std::wstring str(L"Τὴ γλῶσσα μοῦ ἔδωσαν"); 
    std::wcout << str << std::endl;   
    std::wcerr << str << std::endl;   
}   

這在終端上不產生輸出。wcout和wcerr:如何讓它與unicode一起工作?

我怎樣才能讓它產生UTF-8輸出?我認爲應該是C++支持的東西。

我知道utfcpp庫,我正在使用,但問題是具體是否有stdlib方式來打印UTF8。

+0

這是平臺相關的。你在跑什麼? –

+0

OS X在這裏。我會在一分鐘內在Linux上試用這個 –

+0

在Linux上完美地工作。增加了osx標籤。 –

回答

0

我是通過關注this得到的。

std::setlocale(LC_ALL, "");是神奇的咒語。

這工作在我的瑣碎的測試程序。但是,我的完整程序仍然完全無法打印wstrings。

這很好(好吧,不,它仍然有些令人擔憂),我會避免依賴stdlib,並且在utfcpp庫的幫助下自己完成,這非常出色。這樣我就可以使用coutcerr來做所有事情,一切都會好的。

相關問題