本文介绍了c ++无法获得"wcout"来打印unicode,并留下"cout"在职的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
无法获得"wcout"在多个代码页中打印unicode字符串,并留下"cout"工作
can't get "wcout" to print unicode string in multiple code pages, together with leaving "cout" to work
请帮助我让这3条线一起工作.
please help me get these 3 lines to work together.
std::wcout<<"abc "<<L'\u240d'<<" defg "<<L'א'<<" hijk"<<std::endl;
std::cout<<"hello world from cout! \n";
std::wcout<<"hello world from wcout! \n";
输出:
abc hello world from cout!
我尝试过:
#include <io.h>
#include <fcntl.h>
_setmode(_fileno(stdout), _O_U8TEXT);
问题:"wcout"失败
problem:"wcout" failed
尝试:
std::locale mylocale("");
std::wcout.imbue(mylocale);
和:
SetConsoleOutputCP(1251);
和
setlocale(LC_ALL, "");
和
SetConsoleCP(CP_UTF8)
什么都没做
推荐答案
C ++说:
引用的文档说:
字节输入/输出功能不得应用于宽方向的流,宽字符输入/输出功能不应适用于面向字节的流.
根据我的解释,简而言之,请勿混用 std :: cout
和 std :: wcout
.
By my interpretation this means, in short, do not mix std::cout
and std::wcout
.
这篇关于c ++无法获得"wcout"来打印unicode,并留下"cout"在职的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!