双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

Windows下printf能够直接打印UTF-16字符串吗?

feng32tc feng32tc 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
TCHAR szUtf16[100] = TEXT("Hello你好!");
char szGb2312[100];

SetConsoleOutputCP(936); // GB2312

_tprintf(TEXT("%s\n"), szUtf16);
_tprintf(TEXT("%ls\n"), szUtf16);
_tprintf(TEXT("%hs\n"), szUtf16);

_getch();

SetConsoleOutputCP(1200); // UTF-16

_tprintf(TEXT("%s\n"), szUtf16);
_tprintf(TEXT("%ls\n"), szUtf16);
_tprintf(TEXT("%hs\n"), szUtf16);

_getch();

SetConsoleOutputCP(936); // GB2312

WideCharToMultiByte(936, 0, szUtf16, -1, szGb2312, 100, 0, 0);
_tprintf(TEXT("%S\n"), szGb2312);

_getch();

return 0;
}



问题如上,试了很多种组合都不行。一定要使用WideCharToMultiByte转换到本地单字节编码才能正常显示吗?
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
feng32tc
C语言 70,039 成员 243,237 内容