C# 将DataGrid与.txt文件内容绑定时,将行的内容编码为UTF-8。Add()方法

C# 将DataGrid与.txt文件内容绑定时,将行的内容编码为UTF-8。Add()方法,c#,wpf,datagrid,C#,Wpf,Datagrid,我正在尝试对行的内容进行编码。添加到UTF-8中。现在是ANSI。在网上搜索时,我发现了一些文章 因此,我的DataGrid表方法如下所示: 公共DataTable ConvertToDataTablestring文件路径 { DataTable tbl=新的DataTable; //以前10行为例 var lines=File.ReadLinesfilePath.Take10; //拆分每行并创建一个整数序列,其中每个值 //是已拆分元素的数目 //然后获取此序列中存在的最大值 var max

我正在尝试对行的内容进行编码。添加到UTF-8中。现在是ANSI。在网上搜索时,我发现了一些文章

因此,我的DataGrid表方法如下所示:

公共DataTable ConvertToDataTablestring文件路径 { DataTable tbl=新的DataTable; //以前10行为例 var lines=File.ReadLinesfilePath.Take10; //拆分每行并创建一个整数序列,其中每个值 //是已拆分元素的数目 //然后获取此序列中存在的最大值 var max=lines.Selectx=>x.Split'\t'.Length.max; //第一行包含标题 string[]headers=lines.First.Split'\t'; //现在创建具有最大列数的表 对于int col=0;col -> App.xaml文件注意,已经安装了定制的nuget软件包Dragablz、MaterialDesignThemes

但是在Row.Add方法中,我得到一个错误:

无法从“System.Data.DataRow”转换为“char[]”

有没有关于如何解决这个问题的想法

用于测试复制错误编码的假人

根据评论中给出的答案进行输出

代码

公共DataTable ConvertToDataTablestring文件路径 { DataTable tbl=新的DataTable; //以前10行为例 var lines=File.ReadLinesfilePath.Take10; //拆分每行并创建一个整数序列,其中每个值 //是已拆分元素的数目 //然后获取此序列中存在的最大值 var max=lines.Selectx=>x.Split'\t'.Length.max; //第一行包含标题 string[]headers=lines.First.Split'\t'; //现在创建具有最大列数的表 对于int col=0;colutf8.GetStringEncoding.ConvertEncoding.ASCII,utf8, Encoding.ASCII.GetBytess; tbl.Rows.addutf8值; } tbl.行中的foreach DataRow dr { Debug.WriteLinedr[国籍]; 串 =dr[国籍].ToString; byte[]bytes=Encoding.Default.GetBytess; dr[国籍]=Encoding.UTF8.GetStringbytes; Debug.WriteLinedr[国籍]; } 返回tbl; } Split方法返回字符串[]。您可以使用Encoding.Convert方法在不同编码之间进行转换:

var utf8 = Encoding.UTF8;
foreach (string line in lines.Skip(1))
{
    IEnumerable<string> utf8Values = line.Split('\t')
        .Select(s => utf8.GetString(Encoding.Convert(Encoding.ASCII, utf8, 
            Encoding.ASCII.GetBytes(s))));
    tbl.Rows.Add(utf8Values);
}

From:tbl.Columns.Addnew DataColumnheaders[col];To:tbl.Columns.Addheaders[col],typeofstring@谢谢你的回复。问题不在DataColumn方法中,而在Row.Add方法中。感谢您的回复mm8。但产出并非预期。即使代码是正确的。请检查我的更新,以便获得答案的屏幕截图。调试时,线条和UTF8值的值是多少?您尚未提供任何示例数据…请检查我的更新。抱歉没有提供任何样品。您是否也要在创建DataGrid的情况下上载xaml文件?您好mm8您可以检查我的更新代码以创建应用程序并复制问题。非常感谢。问题已根据您的代码片段mm8解决。非常感谢你的帮助