c ++日语字符命令行输出

时间:2014-03-26 20:40:37

标签: c++

我在使用c ++在命令行(osx)上打印日文字符时遇到问题。

我很高兴看到我的命令行上正确打印了任何字符,但我不知道我的问题是什么。什么都没打印,甚至没有错误的字符也没有出现任何错误。我的角色被吞噬了。我在这里做错了什么?

 #include <string>
#include <clocale>
#include<iostream>

int main(int argc, char** args){

    std::setlocale(LC_ALL,"");
    wchar_t c=L'あ';
    std::wcout<<c;

    std::wstring s = L"あ";
    std::wcout<<s;

    return 0;
}

1 个答案:

答案 0 :(得分:2)

您可能不需要该行:

std::setlocale(LC_ALL, "");

用于日期和时间格式之类的内容。

而是使用正确初始化的locale对象填充输出流。

std::wcout.imbue(std::locale("ja_jp.utf-8"));