模拟GET发包,得到返回的HTML代码,编码是GB2312,而项目是UNICODE字符集。现在我要截取HTML代码中一个控件的value值。请问一下需要转码不?
解决方案 »
- 求助:MFC中引用Excel的问题
- 关于24位真彩色图像转为256灰度图的算法
- 制作帮助文件的简单工具有啥?
- 今天GF生日,庆祝散分,顺便问:ms speech sdk与IBM viavoice的实质区别
- 已经用Install shield做好了安装文件,怎么把安装文件打包成一个文件?Install shield developer 8.0
- 急,connect老是失败!!!
- 为什么我可以上网,但是不能看网上邻居?
- mfc 在picture控件中怎么求出指定的点的坐标
- 请问, 有谁用过线程局部存储技术的? 一块讨论下
- 大家觉得C#怎么样??
- 【求助】一个CString到Char*转换函数引起内存泄漏的问题
- GDI+ 绘图InvalidateRect(&rt,true); 不刷新!帮帮忙给点思路
入口参数:szAnsi GB2312为缓冲区地址,如果入口缓冲数据以0结尾,可不提供长度。 // ANSI To UNCODE转换
CString AnsiToUnicode(char * szAnsi, int len=0);
// ANSI To UNCODE转换
CString CStringProc::AnsiToUnicode(char * szAnsi, int len)
{
CString str;
// ansi to unicode
//预转换,得到所需空间的大小
int wcsLen;
if(len>0)
wcsLen=len;
else
wcsLen= ::MultiByteToWideChar(CP_ACP, NULL, szAnsi, strlen(szAnsi), NULL, 0);
//分配空间要给'\0'留个空间,MultiByteToWideChar不会给'\0'空间
wchar_t* wszString = new wchar_t[wcsLen + 1];
//转换
::MultiByteToWideChar(CP_ACP, NULL, szAnsi, strlen(szAnsi), wszString, wcsLen);
//最后加上'\0'
wszString[wcsLen] = '\0'; // UNICODE字串
str=wszString;
delete[] wszString;
return str;
}
请教一下我这个问题出在哪里? char strBuff[1025] = {0};
CString strHtml(_T(""));
int len;
while ((len = pFile->Read((void*)strBuff, 1024)) > 0)
{
strHtml += AnsiToUnicode(strBuff);
memset(strBuff,0,1025); //缓冲区清0
}
MessageBox(strHtml);
MessageBox出来的还是乱码。