weixin_43280015 2022-07-14 21:33 采纳率: 62.5%
浏览 37
已结题

Winform中StreamReader读取中文时出现乱码

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文件首行的列名改成英文后测试,程序可以正常运行,但中文就不行。

  • 写回答

1条回答 默认 最新

  • IT技术分享社区 数据库领域优质创作者 2022-07-14 21:54
    关注

    System.Text.Encoding.Default 改为 System.Text.Encoding.Default.UTF8 试一下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月29日
  • 已采纳回答 7月21日
  • 创建了问题 7月14日

悬赏问题

  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同