代码为:
     try
            {
               string Url ="http://cn.search.yahoo.com/search?p=测试";
                WebRequest myReq=WebRequest.Create(Url);
                WebResponse myRes=myReq.GetResponse();
                //Stream resStream=myRes.GetResponseStream();                //返回信息
                Stream resStream = myRes.GetResponseStream();
                StreamReader sr = new StreamReader(resStream, System.Text.Encoding.GetEncoding("gb2312"));
                String ResponseText = sr.ReadToEnd();
                //Response.write(ResponseText);直接打印至网页,显示为乱码                resStream.Close();
                sr.Close();
                //写到文件里则正常,但有时也显示乱码
                try
                {
                    string SfontingFilePath = Request.PhysicalApplicationPath;                    if (System.IO.File.Exists(SfontingFilePath + "Content.html"))
                        System.IO.File.Delete(SfontingFilePath + "Content.html");                    System.IO.StreamWriter sw = new System.IO.StreamWriter(SfontingFilePath + "YahooContent.html", true, System.Text.Encoding.GetEncoding("gb2312"));
                    sw.WriteLine(ResponseText);
                    sw.Close();
                  
                } catch (Exception fex) {
                      Response.Write(fex.ToString());
                }
               
            }
            catch (Exception ex) 
            {
               Response.Write(ex.ToString());
            }

解决方案 »

  1.   

    http://topic.csdn.net/u/20080424/10/25840f74-18d6-41bc-ac13-5d93ed582a52.html
      

  2.   

    另外建议使用webClient ,这个多方便啊,一句代码就好了
      

  3.   


    private string GetChartset(string url) { string html = getHTML(url,Encoding.ASCII.EncodingName); Regex reg_charset = new Regex(@"charset\b\s*=\s*(?<charset>[^""]*)"); string enconding = null; if (reg_charset.IsMatch(html)) { enconding = reg_charset.Match(html).Groups["charset"].Value; Console.WriteLine("charset:{0}",enconding); } else  { enconding = Encoding.Default.EncodingName; } return enconding; } private string getHTML(string url, string encodingName) { try  { WebRequest webRequest = WebRequest.Create(url); WebResponse webResponse = webRequest.GetResponse(); Stream stream = webResponse.GetResponseStream(); StreamReader sr = new StreamReader(stream, Encoding.GetEncoding(encodingName)); string html = sr.ReadToEnd(); return html; } catch (UriFormatException ex) { Console.WriteLine(ex.Message); return null; } catch (WebException ex) { Console.WriteLine(ex.Message); return null; } } private string Html(string Url) { string strResult = ""; try  { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream streamReceive = response.GetResponseStream(); Encoding encoding = Encoding.GetEncoding(GetChartset(Url)); StreamReader streamReader = new StreamReader(streamReceive, encoding); strResult = streamReader.ReadToEnd(); } catch (Exception ex) { HttpContext.Current.Response.Write(ex.ToString()); } return strResult; } protected void Button1_Click(object sender, EventArgs e) { Response.Write(Html(TextBox1.Text)); }
    这个吧?试一下