电脑上很多HTML文件都被病毒加上这么一句:
<script language="javascript" src=......></Script>
我已经找出规律了,就想用C#写个程序把网页改回来.
原理很简单,就是先把HTML文件的内容读出来,根据规律把恶意代码删除(我用的是Substring()方法),然后覆盖该文件.
至于病毒源,先不管,养着先.现在的问题是:
我用StreamReader的ReadToEnd()和StreamWriter的Write()来读写文件,有很多乱码.
请问该用什么编码呢?或者说有什么好方法呢?

解决方案 »

  1.   

    StreamReader   sr   =   new   StreamReader("....",   System.Text.Encoding.GetEncoding("gb2312"));
      

  2.   

    编码用GB2312或者UTF-8, 估计应该是GB2312的.
    读进来用正则替换, 替换好存回去, 很简单~
      

  3.   

    System.IO.StreamReader myStreamReader = new System.IO.StreamReader(filepath, System.Text.Encoding.Default);重要的System.Text.Encoding.Default
      

  4.   


    try
    {

      System.IO.StreamReader sr=new System.IO.StreamReader(@"C:\index.htm",System.Text.Encoding.GetEncoding("GB2312"));
      string temp=sr.ReadToEnd();
      MessageBox.Show(temp);
      sr.Close();
    }
    catch(Exception ee)
    {
       MessageBox.Show(ee.ToString());
    }
      

  5.   

    经测试,Encoding.Default和Encoding.GetEncoding("GB2312")均可.
    感谢大家的帮助.
    结帐
      

  6.   

    首先要考虑的因素:a. HTML文件的量大不大,重要性如何
                      b. 病毒的再發作性如何
                      c. <script language="javascript" src=......> </Script> 當中的src是否一樣呢,來決定替換?如果可以,只把src的指定的東西自己換一個自己的東西,這所有的HTML的文件都變成自己的東西。例如,自己寫個js文件顯示自己的個人簡歷,圖片啊,等等,有時候,我們想要加這個功能都不是太好加。現在好了,病毒都幫助我們加了。哈哈解决方法:         
             1.把自己需要的HTML文件全部找出来,備份好.最好放在沒有病毒的電腦上,以免再次中毒。(但是要考慮HTML文件的之前的關聯性。例如: 之前的幾個HTML文件當中有關聯性,放在不同的目錄。)這個可以用批處理做,也可以不做。
         2.用C#寫個頁面來修改備份好的文件(自己需要的HTML文件)。