有时候,根据程序的需要,可能会添加中文字体,但是程序在编码的时候可以能会出现乱码,那么这么处理呢,看如下代码:
#include <stdio.h> #include <stdlib.h> #include <string.h> #ifdef WIN32 #define UTEXT(str) GBKToUTF8(str) #else #define UTEXT(str) str #endif #ifdef WIN32 #include "platform/third_party/win32/iconv/iconv.h" static char g_GBKConvUTF8Buf[5000] = {0}; const char* GBKToUTF8(const char *strChar) { iconv_t iconvH; iconvH = iconv_open("utf-8","gb2312"); if (iconvH == 0) { return NULL; } size_t strLength = strlen(strChar); size_t outLength = strLength<<2; size_t copyLength = outLength; memset(g_GBKConvUTF8Buf,5000); char* outbuf = (char*) malloc(outLength); char* pBuff = outbuf; memset( outbuf,outLength); if (-1 == iconv(iconvH,&strChar,&strLength,&outbuf,&outLength)) { iconv_close(iconvH); return NULL; } memcpy(g_GBKConvUTF8Buf,pBuff,copyLength); free(pBuff); iconv_close(iconvH); return g_GBKConvUTF8Buf; } #endif
上面是汉字转换,有可能出先连接出问题的情况,那是程序所用到的iconv的lib没用添加进去,你只需要在你的工程--属性--连接--输入--添加依赖项--libiconv.lib(添加这个lib文件就可以了)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。