gpt4 book ai didi

windows - WriteConsoleW、wprintf 和 Unicode

转载 作者:可可西里 更新时间:2023-11-01 14:13:49 24 4
gpt4 key购买 nike

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com