c - 如何防止 Windows WriteConsole() 默认使用宽字符

标签 c windows console-application

我注意到 WriteConsole() 函数调用仅接受宽字符作为输入(否则会打印问号字符)。

WriteConsole(outputHandle, L"A Message", 268, NULL, NULL);

我知道可以调用 SetConsoleCP() 来更改所使用的字符编码模式,但 ASCII 似乎是一种特殊的字符集,必须通过此函数调用来设置。有没有更好的方法来更改 Windows 控制台应用程序中的字符集?

最佳答案

我解决了我的问题。我的编译器 (Visual Studio) 默认设置为使用 Unicode(在“项目”->“项目名称属性”->“配置属性”->“常规”中),因此我将该设置更改为“使用多字节字符集”。编译器基本上将 WriteConsole() 宏设置为 WriteConsoleW() (适用于宽字符)而不是 WriteConsoleA()。

关于c - 如何防止 Windows WriteConsole() 默认使用宽字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48393163/

相关文章:

c - fork + wait 在 OSX 上获取 EINTR

c - 大阵列上的段错误

css - 是否有 CSS 方法/hack 来指定基于平台的背景颜色(即 mac vs pc)

c++ - 如何正确设置 Windows 路径以便 CMake 轻松识别?

python-3.x - Python交互式外壳类型应用程序

java - 如何使用 java 在控制台窗口中实现基本的箭头键移动?

c - 如何在C中获取文本文件中的字符数

c - 编写一个 C 程序来读取 IPv4 地址并检查其有效性

windows - git,Windows 上的 SSH_ASKPASS

delphi - writeln (“:width” 说明符的明显副作用会导致输出中出现问号)