用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头中的字符集,然后再用相应的字符编码解码。