问题描述
- Linux c socket抓取网页保存到文件一直是乱码
- 如题,建立连接后发送请求后,保存到文件的代码如下:
while(recvSize=recv(sockfdrecvBufBUF_SIZE0)>0){ fwrite(recvBufsizeof(char)strlen(recvBuf)fp); printf(""%s""recvBuf); memset(recvBuf0sizeof(recvBuf)); }
网页可以在终端上正常显示,但是这样保存到文件后打开就提示文件打开出错,包含无效字符。。。。
解决方案
strlen遇到就返回了,所以计算的值不一定准确啊
解决方案二:
试试fwrite前加上
recvBuf[recvSize] = '';
解决方案三:
strlen(recvBuf)计算字符串长度是不对的
解决方案四:
fwrite(recvBufsizeof(char)recvSizefp)
打16进制出来看
时间: 2024-10-03 18:00:38