Windows下printf能够直接打印UTF-16字符串吗?
#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转换到本地单字节编码才能正常显示吗?
...全文
相关推荐
C实现数字转Unicode码
利用C语言实现将数字实现Unicode的方法,Unicode是目前机器的最通用的字符编码,所以其应用很广。
vscode运行C语言文件,printf的中文在终端可以正常显示,scanf输入中文后再打印就会乱码,为什么?
🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!
C++字符串完全指南
编写程序很重要的环节,大家好好学习
Ansi、Unicode、UTF8字符串之间的转换,wprintf
Ansi、Unicode、UTF8字符串之间的转换,wprintf
show-chines--characters-in-C-program.rar_Windows编程_Visual_C++_
在C语言中显示汉字........................



