获取源代码的代码:
WebClient webclient = new WebClient();
webclient.Proxy = null;
byte[] buf = webclient.DownloadData(url);return Encoding.Default.GetString(buf);其他的网站正常,但是有个别像
比如晋江文学网 http://www.jjwxc.net/onebook.php?novelid=443389
比如有妖气 http://u17.com
获取的结果用MessageBox.Show出来就是几个字的乱码请问这个要怎么解决?我也换了很多种,但是获得结果都是 “”
WebClient webclient = new WebClient();
webclient.Proxy = null;
byte[] buf = webclient.DownloadData(url);return Encoding.Default.GetString(buf);其他的网站正常,但是有个别像
比如晋江文学网 http://www.jjwxc.net/onebook.php?novelid=443389
比如有妖气 http://u17.com
获取的结果用MessageBox.Show出来就是几个字的乱码请问这个要怎么解决?我也换了很多种,但是获得结果都是 “”
webclient.Proxy = null;
byte[] buf = webclient.DownloadData("http://u17.com");
string result= Encoding.GetEncoding("utf-8").GetString(buf);//默认的编码
//为GB2312,有些网站采用utf8编码规则,默认的编码规则就会遇到中文会出现乱码你可以拿richbox.text=result来查看结果
webclient.Proxy = null;
byte[] buf = webclient.DownloadData("http://u17.com/");
System.IO.MemoryStream mem = new MemoryStream(buf);
System.IO.Compression.GZipStream gzip = new System.IO.Compression.GZipStream(mem, System.IO.Compression.CompressionMode.Decompress);
StreamReader reader = new StreamReader(gzip);
return reader.ReadToEnd();
头文件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="baidu_union_verify" content="87e768ecea83baff783d9a86486c9fe8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta content="IE=EmulateIE7" http-equiv="X-UA-Compatible"/>
你看charset=utf-8;所有它的内容用utf-8解码,你以前能解码成功的网站的charset=gb2312
u17的是没经过gzip压缩的,那个例子用的默认编码只是我写的示例,实际我有获取自动编码的。u17的例子我放错了。实际上应该是晋江文学网这样的Gzip被压缩了感谢10楼提供的办法,已经解决。另外提醒大家,最好不用HttpWebResponse,实际在使用中如果连接的网站数过多速度会非常慢,当然proxy=null肯定是设置了的