使用默认控制台字体光栅字体8x12 时,我无法使用默认控制字符
ReadConsoleOutputCharacter()
。这些字符将打印为?
。
如果我将控制台字体更改为“Consolas”或“Lucida Console”,请阅读这些额外字符
ReadConsoleOutputCharacter()
打印出来没有问题。
我能做些什么吗?
答案 0 :(得分:1)
无论如何,我修改了它,在转换为控制台I / O映射后改变语言环境:
SetConsoleOutputCP(GetACP());
SetConsoleCP(GetACP());
setlocale(LC_ALL, "");
@David Heffernan 我建议你阅读this
答案 1 :(得分:0)
根据文档https://msdn.microsoft.com/en-us/library/windows/desktop/ms684969%28v=vs.85%29.aspx
此函数使用Unicode字符或8位字符 控制台的当前代码页。控制台的代码页默认为 最初到系统的OEM代码页。更改控制台的代码 页面,使用SetConsoleCP或SetConsoleOutputCP函数,或使用 chcp或mode con cp select = commands。
我相信你会在尝试显示之前找回需要编码到字符集的unicode字符串。