我试图在windows命令提示符下输出以下字符:ュ(U + FF6D)。wcout不会写宽字符到命令提示符
我能够看到使用WriteConsoleW写出字符。我也能够看到字符,如果我使用WideCharToMultiByte使用CP_ACP代码页(chcp返回932:日语)。但是,当我尝试在WriteConsoleW成功打印的相同字符串上使用常规wcout时,它会窒息。
当我执行setlocale(LC_ALL,“”)时,它会打印English_UnitedStates.1252(我安装时的默认代码页)。
为什么wcout在其他人成功时失败?
注:我重新启动机器的系统区域设置更改为日本
你曾经调用'std :: wcout.imbue()'来改变'wcout'的代码页吗? – ildjarn 2011-04-21 23:30:16
工作。但是,当我重置系统区域设置时,为什么wcout的代码页不同?发表一个解释,你会得到简单的点。 – bogertron 2011-04-21 23:34:59