Uri uri = new Uri("http://www.nmc.gov.cn/radar/radar.php?No=anec");
HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest;
HttpWebResponse res = req.GetResponse() as HttpWebResponse;
StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.Default);
html = sr.ReadToEnd();//此处是源码 ,html为变量
提取的网页为http://www.nmc.gov.cn/radar/radar.php?No=anec有时候好用,有的时候为乱码,愁死我了。望大虾们多指点!!

解决方案 »

  1.   

    System.Text.Encoding.Default
    调整下这里试试
      

  2.   

    res.ContentEncoding 可以得到网页的编码信息
      

  3.   

    ContentEncoding的编码信息是类似这样的字符串text/html; charset=utf-8,需要转化
    public Encoding GetEncoding(HttpWebResponse response)
    {
      string name = response.ContentEncoding;
      Encoding code = Encoding.Default;
      if (name == "")
      {
        string contentType = response.ContentType;
        if (contentType.ToLower().IndexOf("charset") != -1)
        {
          name = contentType.Substring(contentType.ToLower().IndexOf("charset=") "charset=".Length);
        }
      }
      if (name != "")
      {
        try
        {
          code = Encoding.GetEncoding(name);
        }
        catch{}
      }
      return code;
    }
      

  4.   

    应该是编码的问题,每个网页的编码可能会不一样的。比如本页面就是:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      

  5.   

    <title>全国雷达拼图</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    是gb2312啊,关键有的时候好用啊,有时候才是乱码,当乱码的时候我怎么改System.Text.Encoding.Default 都不好使!诡异死了!
      

  6.   

    System.Text.Encoding.Default是使用的系统当前的ASCII编码,难道你系统编码经常变动吗?或者你因为需要修改过系统的语言区域设置吗?
    不妨试下指定编码的方式,比如使用System.Text.Encoding.GetEncoding("gb2312")替换System.Text.Encoding.Default
      

  7.   

    你写入的编码格式与网页编码格式不一样    改一下应该就行了  Encoding.GetEncoding("gb2312")
      

  8.   


    “改System.Text.Encoding.Default”?这就谈不上“改”了。在中文操作系统上,它总是gb2312,这就是Default的含义。不要乱用Default。
      

  9.   

    System.Text.Encoding.Default改为:System.Text.Encoding.GetEncoding("gb2312")