我有一个阿拉伯语的单代码字符串显示在输出窗口而不是在控制台中,所以我只能使用OutputDebugStringW,我调用SetConsoleOutputCP(1256)来设置阿拉伯语代码页但仍然只输出“??? ?”。我该怎么办......
答案 0 :(得分:1)
这是OutputDebugStringW()的documented restriction:
OutputDebugStringW根据当前系统区域设置信息转换指定的字符串,并将其传递给OutputDebugStringA进行显示。因此,某些Unicode字符可能无法正确显示。
调用SetConsoleOutputCP()并不能解决问题,即更改控制台窗口的代码页,而不是调试器。您必须更改系统区域设置,“控制面板+区域”,“管理”选项卡。如果阿拉伯语是您最喜欢的语言,那么将其更改为1256是合适的事情。它当然会产生系统范围的影响。