尝试在控制台上打印宽字符串,但似乎只有第一行英文字符正确打印出来。为什么?
#include <iostream>
using namespace std;
int main()
{
std::wcout << L"Hello" << std::endl;
std::wcout << L"река" << std::endl;
std::wcout << L"河流" << std::endl;
std::wcout << L"川" << std::endl;
std::wcout << L"река" << std::endl;
std::wcout << L"Hello" << std::endl;
return 0;
}
这是控制台输出:
甚至更奇怪的是,似乎它已经吞噬了#pe;&#34;之后的所有角色,而不是打印最后一个&#34; Hello&#34;无论是。
编辑:
尝试了这个SO的建议答案:C++: output contents of a Unicode file to console in Windows
#include <iostream>
#include <fcntl.h>
#include <io.h>
using namespace std;
int main()
{
_setmode(_fileno(stdout), _O_U16TEXT);
std::wcout << L"Hello" << std::endl;
std::wcout << L"река" << std::endl;
std::wcout << L"河流" << std::endl;
std::wcout << L"川" << std::endl;
std::wcout << L"река" << std::endl;
std::wcout << L"Hello" << std::endl;
return 0;
}
解决问题的一部分,但中间的中国人和日本人会发生什么?