大家好: 想试试做一个采集HTML中的内容 ,但有一些网站的采集出现乱码。
虽然说如果第一个采集有问题 就换一个编码,但还是有问题
以下是代码 
     public static  string AutoHtml(string url)
      {
          if (url.ToLower().IndexOf("http://")==-1)
          {
              url = "http://" + url;
          }
          WebClient myWebClient = new WebClient();
          myWebClient.Credentials = CredentialCache.DefaultCredentials;
          byte[] myDataBuffer = null;
          try
          {
             myDataBuffer=myWebClient.DownloadData(url);
          }
          catch { return null; }
         //
          string dd = System.Text.Encoding.UTF8.GetString(myDataBuffer);
         //
         
          string strWebData = Encoding.Default.GetString(myDataBuffer);
         // strWebData = " <title></title><meta  charset=gb2312 />";
         // string strRegex = @"charset=['""]?(.*?)['""]?\r\n/>";
          //Match charSetMatchs = Regex.Match(strWebData, strRegex, RegexOptions.IgnoreCase); 
          //Regex r = new Regex(strRegex, RegexOptions.IgnoreCase);
          //MatchCollection m = r.Matches(strWebData);
          //获取网页字符编码描述信息
          Match charSetMatch = Regex.Match(strWebData, @"charset=['""]?(.*?)['""]?\s?/>", RegexOptions.IgnoreCase); 
          string webCharSet = charSetMatch.Groups[1].Value;
          if (string.IsNullOrEmpty(webCharSet))
          {
              webCharSet = "utf-8";
          }   //换一个编码
          strWebData = Encoding.GetEncoding(webCharSet).GetString(myDataBuffer);
          return strWebData;
      }采集 www.xiaomi.com的时候出现乱码应该如何 解决,原因是?

解决方案 »

  1.   

     Encoding encoding = Encoding.GetEncoding(webBrowser.Document.Encoding);
             StreamReader stream = new StreamReader(webBrowser.DocumentStream, encoding);
             File.WriteAllText(@"C:\mzwu.txt", stream.ReadToEnd(), Encoding.Unicode);
             MessageBox.Show(DateTime.Now.ToString() + ": 页面内容获取完成! ");
      

  2.   

     Encoding.Default.GetString(myDataBuffer);
    这种编码的时候最好别用默认的,指定具体编码下试试
      

  3.   

    像小米的,他的编码是utf-8 但我用UTF-8时还是出现乱码
      

  4.   

    你们可以调用我的那个方法测试一下  www.xiaomi.com这个网站 得到的结果是乱码。怎么处理这类的问题,还请你们指教。