本文介绍了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"在职的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-16 07:48