#include <iostream>
using namespace std;
#ifdef _WIN32
#include <windows.h>
#endif
int main()
{
#ifdef _WIN32
//控制台显示乱码纠正
SetConsoleOutputCP (65001);
CONSOLE_FONT_INFOEX info = { 0 }; // 以下设置字体来支持中文显示。
info.cbSize = sizeof(info);
info.dwFontSize.Y = 16;
info.FontWeight = FW_NORMAL;
wcscpy(info.FaceName, L"NSimSun");//指定新宋体字体
SetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), FALSE, &info);
#endif
cout << "中文乱码解决!" << endl;
return 0;
}
有时候打印路径的时候会出现方框之类的错误显示。以下为终极解决方案
#include <iostream>
#include <windows.h>
void utf8ToGbk(char *utf8String, char *gbkString);
using namespace std;
int main(int argc, char **argv)
{
//程序开始
char text[MAX_PATH]="中文测试";
char retText[MAX_PATH]={"\0"};
utf8ToGbk(text,retText);
cout << retText << endl;
return 0;
}
void utf8ToGbk(char *utf8String, char *gbkString)
{
wchar_t *unicodeStr = NULL;
int nRetLen = 0;
nRetLen = MultiByteToWideChar(CP_UTF8, 0, utf8String, -1, NULL, 0);
//求需求的宽字符数大小
unicodeStr = (wchar_t *)malloc(nRetLen * sizeof(wchar_t));
nRetLen = MultiByteToWideChar(CP_UTF8, 0, utf8String, -1, unicodeStr, nRetLen);
//将utf-8编码转换成unicode编码
nRetLen = WideCharToMultiByte(CP_ACP, 0, unicodeStr, -1, NULL, 0, NULL, 0);
//求转换所需字节数
nRetLen = WideCharToMultiByte(CP_ACP, 0, unicodeStr, -1, gbkString, nRetLen, NULL, 0);
//unicode编码转换成gbk编码
free(unicodeStr);
}
原文地址:http://www.cnblogs.com/xiaohoulaoyue/p/16914801.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性