2016-07-26 78 views
0

我想複製文本a中包含某個文本的所有行到一個小的c#應用程序的文件b。 它已經在工作,但輸出文件不顯示「äöü」之類的特殊字符。我已經嘗試將charset設置爲utf-8,但它不起作用。 這裏是我的功能:輸出文件錯誤的字符集

void BtnCnvClick(object sender, EventArgs e) 
    { 
      if(File.Exists(txSource.Text)) { 
       string[] srcFile = File.ReadAllLines(txSource.Text, System.Text.Encoding.UTF8); 
       StreamWriter w = new StreamWriter(new FileStream(txOut.Text, FileMode.Open, FileAccess.ReadWrite), System.Text.Encoding.UTF8); 
       for(int i=0; i < srcFile.Length;i++) { 
        //progressBar1.Value = i/srcFile.Length; 
        if(i==0&&useHead) { 
         w.WriteLine(srcFile[i]); 
        } else { 
         if(srcFile[i].Contains(txFilter.Text)) { 
          w.WriteLine(srcFile[i]); 
         } 
        } 
       } 
       w.Close(); 
       MessageBox.Show("Export successful!"); 
      } 
      else MessageBox.Show("Please input a valid file name and filter."); 
    } 

//編輯:它的工作現在,我不得不將其從UTF-8改爲Encoding.Default!

+0

嘗試 「Encoding.Default」 – 2016-07-26 05:49:49

+0

哦,它的工作 - 感謝 – Cryonic

回答

0

更改此:

StreamWriter w = new StreamWriter(new FileStream(txOut.Text, FileMode.Open, FileAccess.ReadWrite), System.Text.Encoding.UTF8); 

這樣:

StreamWriter w = new StreamWriter(new FileStream(txOut.Text, FileMode.Open, FileAccess.ReadWrite), System.Text.Encoding.Default);