我在使用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;
}
答案 0 :(得分:2)
您可能不需要该行:
std::setlocale(LC_ALL, "");
用于日期和时间格式之类的内容。
而是使用正确初始化的locale
对象填充输出流。
std::wcout.imbue(std::locale("ja_jp.utf-8"));