当前位置: 技术问答>linux和unix
程序返回的网页源码有乱码
来源: 互联网 发布时间:2016-03-10
本文导语: 从服务器接到的回答定向到文件后不能打开(有乱码),只能用firefox打开,里面有很多乱码,请问什么原因,可以怎么解决,谢谢 strcat( header,"GET " ); strcat( header,"/ " ); strcat( header,"HTTP/1.1rn...
从服务器接到的回答定向到文件后不能打开(有乱码),只能用firefox打开,里面有很多乱码,请问什么原因,可以怎么解决,谢谢
strcat( header,"GET " );
strcat( header,"/ " );
strcat( header,"HTTP/1.1rn");
strcat( header,"Host: ");
strcat( header,host);
strcat( header,"rnConnection: closernrn");
//建立连接
result = connect( sockfd,( struct sockaddr * )&address,len );
if( result == -1 ){
perror( "oops:getdate" );
exit( 1 );
}
write( sockfd,header,strlen( header ) );
while( read( sockfd,buffer,sizeof( buffer )) > 0){
printf( "%s",buffer );
memset( buffer,0,sizeof( buffer ) );
}
strcat( header,"GET " );
strcat( header,"/ " );
strcat( header,"HTTP/1.1rn");
strcat( header,"Host: ");
strcat( header,host);
strcat( header,"rnConnection: closernrn");
//建立连接
result = connect( sockfd,( struct sockaddr * )&address,len );
if( result == -1 ){
perror( "oops:getdate" );
exit( 1 );
}
write( sockfd,header,strlen( header ) );
while( read( sockfd,buffer,sizeof( buffer )) > 0){
printf( "%s",buffer );
memset( buffer,0,sizeof( buffer ) );
}
|
用firefox打开的话,改变字符编码试试
|
接收完以后先用mbsrtowcs函数转成宽字符串。在用wprintf输出试试。确保接收到的数据中没有null字节
|
要是汉字出现乱码,会不会是宽字符的问题
|
utf8编码?