根据网页url捉取网页,并把网页内容保存到本地文件夹。运行后出现错误对话框,提示信息为:<<
未“System.ArgumentException”类型的异常出现在 mscorlib.dll 中。其他信息: 在索引 51 处发现无前置高代理项的低代理项字符。输入可能不在此编码内,或者可能不包含有效的 Unicode (UTF-16)字符。>>
错误标识指向SaveTextFile(string buffer)方法的outStream.Close()语句;存到机器的html 文档用记事本打开时,中文部分全都是黑色的小方块。怎么解决?先谢了!部分涉及代码如下
/// <param name="buffer">The text to save</param>
 // 保存文本文件
private void SaveTextFile(string buffer)
{
         if( m_spider.OutputPath==null )
    return;

          Monitor.Enter(this);
         string filename = convertFilename( m_uri );
StreamWriter outStream = new StreamWriter( filename );
outStream.Write(buffer);
outStream.Close();                         ???????错误指向语句
Monitor.Pulse(this);
Monitor.Exit(this);
} /// <summary>
/// Download a page
/// </summary>
/// <returns>The data downloaded from the page</returns>
// 下载一个页面
private string GetPage()
{
WebResponse response = null;
Stream stream = null;
StreamReader reader = null; try
{
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(m_uri);

     response = request.GetResponse();
     stream = response.GetResponseStream();      if( !response.ContentType.ToLower().StartsWith("text/") )
     {
SaveBinaryFile(response);
return null;
      }      string buffer = "",line;      reader = new StreamReader(stream);

      while( (line = reader.ReadLine())!=null )
      {
buffer+=line+"\r\n";
      }

      SaveTextFile(buffer);
     return buffer;
}
catch(WebException e)
{
System.Console.WriteLine("下载失败,错误:" + e);
return null;
}
catch(IOException e)
{
System.Console.WriteLine("下载失败,错误:" + e);
return null;
}
finally
{
if( reader!=null ) reader.Close();
if( stream!=null ) stream.Close();
if( response!=null ) response.Close();
}
}