我用的是webrequest类,抓下来的网页很多都是乱码,我现在是通过先读一小部分html文本并判断是不是gb2312,是的就 用gb2312编码方式存,否则用utf-8.但是还有不少网页是乱码,各位有没有什么好的办法啊。

解决方案 »

  1.   

    HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url); 
    HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); 
    Stream strm=myHttpWebResponse.GetResponseStream();
    StreamReader sr=new StreamReader(strm,Encoding.Default);
    string outdata=sr.ReadToEnd();
      

  2.   

    那在VB.net能否也用这个啊~》~~
      

  3.   

    一楼的方法我用过,这样用来处理 gb2312编码的网页还可以处理utf-8等就是乱码了
      

  4.   

    WebClient wb=new WebClient();
    byte[] pageData=wb.DownloadData(@url);
    string result=Encoding.Default.GetString(pageData);
      

  5.   

    private Regex regEncoding = new Regex(@"charset=([\w-]*)\.*"); /// <summary>
    /// Get a charset information from the target web uri;
    /// </summary>
    /// <param name="targetUri">Target web Uri</param>
    /// <returns>The Encoding the website used</returns>
    public Encoding GetWebEncoding(Uri targetUri)
    {
    Encoding enc = Encoding.ASCII;
    WebClient browser = new WebClient();
    string strContent = enc.GetString(browser.DownloadData(targetUri.ToString())); Match m = regEncoding.Match(strContent);
    if(m.Success)
    {
    return Encoding.GetEncoding(m.Groups[1].ToString());
    }
    return Encoding.GetEncoding("gb2312");
    }