首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Windows Mobile >

用wininet读取网络数据MessageBox为何显示乱码?解决方法

2012-01-14 
用wininet读取网络数据MessageBox为何显示乱码?代码样例:do{//Allocate space for the buffer.wchar_t *sz

用wininet读取网络数据MessageBox为何显示乱码?
代码样例:
do{
//Allocate space for the buffer.
wchar_t *szBuffer = new wchar_t[BUF_SIZE+1];
// Read the data.
if(!szBuffer){
printf("Out of memory\n");
break;
}
else{
// Read the data.
ZeroMemory(szBuffer,BUF_SIZE+1);
if(!InternetReadFile(hConnect,szBuffer,BUF_SIZE,&dwDownloaded)){
printf("Error %u in InternetReadFile().\n",GetLastError());
break;
}
if(dwDownloaded>0){
szBuffer[dwDownloaded] = '\0';
//printf("%s",szBuffer);
httpResponse.append(szBuffer);
}
}
delete szBuffer;
}while(dwDownloaded>0);

用wprintf输出也没有输出,这是为何?

[解决办法]
首先你用WCHAR_t就有问题因为一般来说SERVER返回的都是不是UNICODE的。你用WCHAR可能从一开始就就不对了。用BYTE最稳当
[解决办法]
要判断HTTP头中的字符集,然后再用相应的字符编码解码。

热点排行