wcout和wcerr:如何让它与unicode一起使用?

时间:2013-07-05 03:47:57

标签: c++ macos unicode utf-8 io

#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;           
}         

这不会在终端上产生输出。

如何让它产生UTF-8输出?我认为这应该是C ++支持的东西。

我知道我正在使用的utfcpp库,但问题是具体是否有stdlib方法可以打印出UTF8。

1 个答案:

答案 0 :(得分:0)

我按照this得到了它。

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

这适用于我的琐碎测试计划。然而,我的完整程序仍然完全无法打印出wstrings。

这很好(嗯,不,它仍然有些惊人),我将避免依赖stdlib,并在utfcpp库的帮助下自己完成,这非常好。通过这种方式,我可以将coutcerr用于所有内容,并且一切顺利。