7

我正在从 Unicode 构建的控制台应用程序(使用 C++ 和 Visual Studio 2008)做这个简单的输出。此代码旨在在 Windows 上运行:

_tprintf(L"Some sample string\n");

一切正常。但是,如果我在其中添加一个非 ASCII 字符:

_tprintf(L"Some sample € string\n");

输出到控制台的是该字符之前的所有内容:

一些样品

我在这里做错了什么?

4

1 回答 1

8

默认情况下,Windows 控制台不处理宽字符。启用该功能的最简单方法可能是调用_setmode

_setmode(_fileno(stdout), _O_WTEXT); 

有关所需的包含、使用示例和其他可用模式,请参阅MSDN 。

于 2013-03-16T14:07:47.470 回答