using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;namespace net
{
    class shouFile
    {
        public static void Main()
        {
            HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);            HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse();            StreamReader respStream = new StreamReader(myResp.GetResponseStream(), UTF8Encoding.Default);            string respStr = respStream.ReadToEnd();            respStream.Close();
            TextWriter myWriter = File.CreateText(@"C:\test1.htm");            myWriter.Write(respStr);            myWriter.Flush();
            myWriter.Close();
        }
    }
}
可以这样吗??       但这样保存下来的网页是乱码,图片正常显示.要用什么编码呢?

解决方案 »

  1.   

    UTF8Encoding.Default
    改成
    Encoding.Default
      

  2.   

    改成Encoding.Default   
    文字还是乱码,图片正常显示.
    WHY?
      

  3.   

    IE保存的网页是ANSI编码的,所以我们也要保存成ANSI编码的StreamReader   respStream   =   new   StreamReader(myResp.GetResponseStream(),   Encoding.Default); 
    只是读取时以ANSI编码读取,我们要在写入时也以ANSI编码写入。
    写入的代码改成如下就OK了FileStream fs = new FileStream(@"c:\test1.htm", FileMode.Create, FileAccess.Write);
                
    StreamWriter sw = new StreamWriter(fs,Encoding.Default); );
                
    sw.Write(respStr);
               
    sw.Close();
      

  4.   

    完整的            
      HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);            HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse();            StreamReader respStream = new StreamReader(myResp.GetResponseStream(),Encoding.Default);
                
                string respStr = respStream.ReadToEnd();            respStream.Close();
               
                FileStream fs = new FileStream(@"c:\test.htm", FileMode.Create, FileAccess.Write);            StreamWriter sw = new StreamWriter(fs,Encoding.Default);
                
                sw.Write(respStr);
               
                sw.Close();