从codeproject上下载了BasicExcel类,将数据写到Excel文件中,很方便,可是中文在Excel中显示为乱码,很是郁闷。
有高人说需要将GB2312汉字转化成为Unicode再写入Excel中。
问题如下:
1、在MFC程序中,CString str = "中国";,这个str是什么字符集的,是GB2312吗?
2、在MFC程序中的字符串都有哪些字符集格式?UTF-8,GB2312.。。都有吗,怎么判断是什么格式?
3、怎么讲GB2312格式的汉字字符串转化成Unicode呢?
4、有人用过将数据从MFC的CString变量导出到Excel中吗?多谢多谢!
有高人说需要将GB2312汉字转化成为Unicode再写入Excel中。
问题如下:
1、在MFC程序中,CString str = "中国";,这个str是什么字符集的,是GB2312吗?
2、在MFC程序中的字符串都有哪些字符集格式?UTF-8,GB2312.。。都有吗,怎么判断是什么格式?
3、怎么讲GB2312格式的汉字字符串转化成Unicode呢?
4、有人用过将数据从MFC的CString变量导出到Excel中吗?多谢多谢!
解决方案 »
- 求一个VS2008, VS2010能用的美化菜单类或者美化菜单用的dll
- DXVA VMR9 renderless 中的应用
- [急]想问一个NDIS数据包的问题
- DIRECTX LPD3DXSPRITE的问题
- 在CComboBox里面怎么样显示数据库的记录
- 一个程序(如sqlserver)执行了的标志是什么?,怎么判断它是否执行?急。。。
- 高手帮忙,用图像遗传算法求阀值的算法。
- DLL的问题
- 怎么定制装载Visual Studio 在世界上包(Package)文件,能够单纯的运行Visual C++或者是Visual C#
- 请教各位高手!急死了!一定给分!
- VC ADO 远程访问 sql server 问题
- 关于利用内存映射文件的方式处理文件的问题
CString str = "中国";这种格式是GBK码
正常情况下,excel对于上述两种编码以及UTF-8都是完全(自动)支持的
也许你使用的BasicExcel类对于字符集编码进行了处理你可以试试:
1、将编码转换为UNICODE(MultiByteToWideChar)
或者2、进一步将编码转换为UTF-8
在工程菜单下的设置菜单项时,修改C/C++选项卡里的预处理程序定义,去掉_MBCS或MBCS,再加上UNICODE(用于WINAPI),_UNICODE(用于CRT)。
如果仍然不行,则需要进一步解码UTF-8。
问题解决了,多谢各位!核心代码如下,收藏
void GB2312ToUnicode(CString str_,WCHAR*& pWStr_)//得到Unicode字符串
{
int count = str_.GetLength()*2+1;
if(pWStr_ == NULL)
{
pWStr_ = new WCHAR[count];
}
DWORD UnicodeSize=MultiByteToWideChar(CP_ACP,0,(LPCSTR)str_.GetBuffer(),count,pWStr_,(DWORD)count);
}