2016-07-26 12 views
0

Ich möchte alle Zeilen aus Text a, die einen bestimmten Text enthalten, in Datei b mit einer kleinen C# -Anwendung kopieren. Es funktioniert bereits, aber die Ausgabedatei zeigt keine Sonderzeichen wie "äöü". Ich habe bereits versucht, den Zeichensatz auf utf-8 zu setzen, aber es funktioniert nicht. Hier ist meine Funktion:Ausgabedatei falscher Zeichensatz

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."); 
    } 

// Edit: Es funktioniert jetzt, ich musste es einfach von UTF-8 ändern, um Encoding.Default! diese

+0

try "Encoding.Default" –

+0

Oh, es funktioniert - dank – Cryonic

Antwort

0

Wechsel:

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

dazu:

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