Winform中StreamReader读取中文时出现乱码
private void button1_Click(object sender, EventArgs e)
{
string filepath = @"E:\DotNet\2019年\01月\01.txt";
StreamReader sr =new StreamReader (filepath,System.Text.Encoding.Default);
string fileDate = sr.ReadLine(); //文本第一行为文件日期,不作为DataTable的Columns创建
string colName = sr.ReadLine(); //文本第二行作为DataTable的Columns创建
DataTable dtNew = new DataTable();
//文本columns创建
string[] col = colName.Split(',');
foreach (string i in col) {
dtNew.Columns.Add(i.ToString());
}
//文本rows创建
string nextLine;
while ((nextLine = sr.ReadLine()) != null) {
DataRow dr = dtNew.NewRow();
string[] rowContent = nextLine.Split(',');
for (int i = 0; i <= dtNew.Columns.Count; i++)
{
dr[i] = rowContent[i].ToString();
}
dtNew.Rows.Add(dr);
}
sr.Close();
//输出DataTable中数据
dataGridView1.DataSource = dtNew;
}
这是报错信息:System.Data.DuplicateNameException:“A column named '��������' already belongs to this DataTable.”
已经按照网上的说法采用Default让系统获取当前操作系统的当前ANSI代码页的编码方案,
StreamReader sr =new StreamReader (filepath,System.Text.Encoding.Default);但是仍然报以上错误信息。
我把txt文件首行的列名改成英文后测试,程序可以正常运行,但中文就不行。