如何解决http响应打印出乱码的问题
#include <winsock.h>#include <stdio.h>int main(){ WSADATA wsaData; int Ret; if ((Ret = WSAStartup(MAKEWORD(1,1), &wsaData)) != 0) { printf("WSAStartup failed with error %d\n", Ret); } SOCKET socketfd; struct sockaddr_in addr; int connectfd = 0; char strsend[255], buffer[1024*1024]; memset((void*)strsend, 0, sizeof(strsend)); memset((void*)buffer, 0, sizeof(buffer)); memset((void*)&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(80); addr.sin_addr.S_un.S_addr = inet_addr("222.186.13.209"); socketfd = socket(AF_INET, SOCK_STREAM, 0); if(socketfd < 0) { printf("socket fail %d\n"); } connectfd = connect(socketfd, (struct sockaddr*)&addr, sizeof(addr)); if(connectfd < 0) printf("connect fail\n"); strcpy(strsend, "GET /index.html HTTP/1.0\r\nHost:www.soshu.cn\r\n\r\n"); connectfd = send(socketfd, strsend, sizeof(strsend), 0); connectfd = recv(socketfd, buffer, sizeof(buffer), 0); if(connectfd == SOCKET_ERROR) { printf("%d\n",WSAGetLastError()); } else printf("%s\n",buffer); FILE* pFile = fopen("11.html","wb"); fprintf(pFile,buffer); fclose(pFile); //close(socketfd); if (WSACleanup() == SOCKET_ERROR) { printf("WSACleanup failed with error %d\n", WSAGetLastError()); } getchar(); return 0;}