请问如何将16进制的UTF8编码转换成中文? 本帖最后由 dduummoo 于 2014-05-21 15:10:07 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 MultiByteToWideChar(CP_UTF8, ...); char szText[] = {0xE4, 0xBB, 0x8A, 0xE5, 0xA4, 0xA9, 0x00}; wchar_t* szBuf = NULL; int nlen = MultiByteToWideChar(CP_UTF8, 0, szText, -1, szBuf, 0); szBuf = new wchar_t[nlen]; MultiByteToWideChar(CP_UTF8, 0, szText, -1, szBuf, nlen); CString strText(szBuf); AfxMessageBox(strText); delete[] szBuf; szBuf = NULL; 谢谢版主,MultiByteToWideChar这个函数里第三个参数是char*类型的,我用的是byte*,于是我用for循环了sprintf把整个byte数组转到另一个char数组里,之后再按你这样来,效果还可以。 不过感觉还要循环一趟有些麻烦,于是我还想请教,有比sprintf更简单好用的方式吗? char szText[] = {0xE4, 0xBB, 0x8A, 0xE5, 0xA4, 0xA9, 0x00};就是 被转换 的 若是 byte * 的:(char*) 转换 一下 就可以了 谢谢版主,MultiByteToWideChar这个函数里第三个参数是char*类型的,我用的是byte*,于是我用for循环了sprintf把整个byte数组转到另一个char数组里,之后再按你这样来,效果还可以。 不过感觉还要循环一趟有些麻烦,于是我还想请教,有比sprintf更简单好用的方式吗?byte *即为unsigned char *类型,而char类型编译器默认是signed char,只需要设置一下编译设置,VS08 工程 --> 属性 --> C/C++ --> 语言,这样你程序中定义的所有char 类型,都是unsigned char 即byte类型 vc中怎么调用C#编译的对话框dll??? 为什么我的VC中关键字不显示成别的颜色????? 中国伟大的软件评选 - 候选征集中... 在哪里能找到系统提供的AcitveX控件的使用说明? 请教一个TrackPopupMenu问题 关于写数据的问题 弹出多个界面的问题? 新手一行代码不清楚,给分! 请教大家:如何在EditBox的Multiline中实现格式化输出 从WORD文件中提取文本时,怎样能不将表格数据一起提出来! 有没有MFC界面的美化软件,带教程的,我用的VS2010 在VC++中有没有专门画椭圆和多边形的类
wchar_t* szBuf = NULL;
int nlen = MultiByteToWideChar(CP_UTF8, 0, szText, -1, szBuf, 0);
szBuf = new wchar_t[nlen];
MultiByteToWideChar(CP_UTF8, 0, szText, -1, szBuf, nlen);
CString strText(szBuf);
AfxMessageBox(strText);
delete[] szBuf;
szBuf = NULL;
谢谢版主,MultiByteToWideChar这个函数里第三个参数是char*类型的,我用的是byte*,于是我用for循环了sprintf把整个byte数组转到另一个char数组里,之后再按你这样来,效果还可以。
不过感觉还要循环一趟有些麻烦,于是我还想请教,有比sprintf更简单好用的方式吗?
就是 被转换 的 若是 byte * 的:
(char*) 转换 一下 就可以了
谢谢版主,MultiByteToWideChar这个函数里第三个参数是char*类型的,我用的是byte*,于是我用for循环了sprintf把整个byte数组转到另一个char数组里,之后再按你这样来,效果还可以。
不过感觉还要循环一趟有些麻烦,于是我还想请教,有比sprintf更简单好用的方式吗?byte *即为unsigned char *类型,而char类型编译器默认是signed char,只需要设置一下编译设置,VS08 工程 --> 属性 --> C/C++ --> 语言,这样你程序中定义的所有char 类型,都是unsigned char 即byte类型