【发布时间】:2011-04-21 23:29:06
【问题描述】:
我正在尝试在 Windows 命令提示符中写出以下字符:ュ (U+FF6D)。
我可以看到使用 WriteConsoleW 写出的字符。如果我使用 CP_ACP 代码页(chcp 返回 932:日语)使用 WideCharToMultiByte,我也可以看到该字符。但是,当我尝试在 WriteConsoleW 成功打印的同一字符串上使用常规 wcout 时,它会窒息。
当我执行 setlocale(LC_ALL, "") 时,它会打印 English_UnitedStates.1252(我安装时的默认代码页)。
为什么在其他人成功时 wcout 却失败了?
注意:我重新启动机器以将其系统区域设置更改为日本日语
【问题讨论】:
-
您是否曾经致电
std::wcout.imbue()更改wcout的代码页? -
那行得通。但是为什么当我重置系统区域设置时 wcout 的代码页不同?发表解释,您可以获得简单的分数。
标签: c++ windows internationalization