- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
AllocConsole();
consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
WriteConsoleW(consoleHandle, L"qweąęėšų\n", 9, NULL, NULL);
_wfreopen(L"CONOUT$", L"w", stdout);
wprintf(L"qweąęėšų\n");
输出是:
qweąęėšų
qwe
为什么 wprintf 在打印 qwe 后停止?在 ± 中遇到的\0 字节应该终止宽字符字符串,AFAIK
最佳答案
起初我接受了 Hans Passant 的回答,但是 wprintf 没有打印到 UTF-8 流的根本原因是 wprintf 的行为就像它使用函数 wcrtomb 一样,它将宽字符 (wchar_t) 编码为多字节序列,具体取决于在当前语言环境 - link .Windows 没有支持 UTF-8 的语言环境(支持 UTF-8 代码页 (65001) 的语言环境)。
引自 MSDN :
The set of available locale names, languages, country/region codes, and code pages includes all those supported by the Windows NLS API except code pages that require more than two bytes per character, such as UTF-7 and UTF-8.
关于windows - WriteConsoleW、wprintf 和 Unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15827607/
问题是 MinGW 编译的程序在通过 wcout 在控制台上打印非 ascii 字符时存在问题,输出可能显示来自不同代码页的字符或完全空白。但是 winapi WriteConsoleW 工作得很好。
AllocConsole(); consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); WriteConsoleW(consoleHandle, L"qweą
我是一名优秀的程序员,十分优秀!