获取源代码的代码:
                
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出来就是几个字的乱码请问这个要怎么解决?我也换了很多种,但是获得结果都是 “”

解决方案 »

  1.   

    编码问题,你把代码改成如下:            WebClient webclient = new WebClient();
                webclient.Proxy = null;
                byte[] buf = webclient.DownloadData("http://u17.com");
                string result= Encoding.GetEncoding("utf-8").GetString(buf);//默认的编码
                  //为GB2312,有些网站采用utf8编码规则,默认的编码规则就会遇到中文会出现乱码你可以拿richbox.text=result来查看结果
      

  2.   

    貌似那个网站使用了gzip,我没接触过gzip
      

  3.   

    采用HttpWebRequest,可以进行更多的控制
      

  4.   

    WebClient webclient = new WebClient();
    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();
      

  5.   

    是编码问题。我写的那个代码,result你用richBox现实没有问题,http://u17.com这个网站的
    头文件
    <!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
      

  6.   

    不好意思 可能我例子放的不对,但是我的问题跟编码是没关系的
    u17的是没经过gzip压缩的,那个例子用的默认编码只是我写的示例,实际我有获取自动编码的。u17的例子我放错了。实际上应该是晋江文学网这样的Gzip被压缩了感谢10楼提供的办法,已经解决。另外提醒大家,最好不用HttpWebResponse,实际在使用中如果连接的网站数过多速度会非常慢,当然proxy=null肯定是设置了的