我想将包含特定文本的文本中的所有行复制到带有小型c#应用程序的文件b。 它已经工作,但输出文件没有显示像“äöü”这样的特殊字符。我已经尝试将字符集设置为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 :(得分: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);