从csv文件导入时的c#文本编码

从csv文件导入时的c#文本编码,c#,C#,我正在使用C#从CSV文件中读取行。但是,读取的文本编码不正确。我曾尝试将其转换为UTF8,但没有效果 string type_of_loan = System.Text.Encoding.UTF8.GetString(Encoding.GetEncoding("iso-8859-1").GetBytes(lineParts[5])); 我在编辑器中打开了该文件,当我使用西文拉丁语1(iso-8859-1)打开它时,它正确呈现,但最初它说它是西文罗马编码,并且使用该编码,我得到了错误的字符以显

我正在使用C#从CSV文件中读取行。但是,读取的文本编码不正确。我曾尝试将其转换为UTF8,但没有效果

string type_of_loan = System.Text.Encoding.UTF8.GetString(Encoding.GetEncoding("iso-8859-1").GetBytes(lineParts[5]));
我在编辑器中打开了该文件,当我使用西文拉丁语1(iso-8859-1)打开它时,它正确呈现,但最初它说它是西文罗马编码,并且使用该编码,我得到了错误的字符以显示,如所附图像所示

请注意,奇怪的问号字符甚至在保存到DB之前就出现在C#中

我期待着用瑞典字“å”来代替它

这解决了问题:

var linesInFile=sftp.ReadLines(file.FullName,Encoding.GetEncoding(“iso-8859-1”)

谢谢@ckuri

这解决了问题:

var linesInFile=sftp.ReadLines(file.FullName,Encoding.GetEncoding(“iso-8859-1”)


谢谢@ckuri

您是这样打开文件的:StreamReader=newstreamreader(@“c:\temp\test.txt”,Encoding.GetEncoding(“iso-8859-1”);当显示字符时,请使用RichTextBox而不是常规文本框。Im将使用以下命令读取行:var linesInFile=sftp.ReadLines(file.FullName);您需要在线条零件的来源处应用编码。如果您已经以错误的格式读取这些字符,则所有特殊字符都已被乱码或替换为无法反转的替换字符。因此,使用一种编码的GetBytes和使用另一种编码的GetString通常无法工作。您应该使用File.ReadLine(字符串、编码)重载。File.ReadLine(string)重载假定UTF-8.var linesInFile=sftp.ReadLines(File.FullName,Encoding.UTF8);不起作用。编码。GetEncoding(“iso-8859-1”)起作用了!您是这样打开文件的:StreamReader=newstreamreader(@“c:\temp\test.txt”,Encoding.GetEncoding(“iso-8859-1”);当显示字符时,请使用RichTextBox而不是常规文本框。Im将使用以下命令读取行:var linesInFile=sftp.ReadLines(file.FullName);您需要在线条零件的来源处应用编码。如果您已经以错误的格式读取这些字符,则所有特殊字符都已被乱码或替换为无法反转的替换字符。因此,使用一种编码的GetBytes和使用另一种编码的GetString通常无法工作。您应该使用File.ReadLine(字符串、编码)重载。File.ReadLine(string)重载假定UTF-8.var linesInFile=sftp.ReadLines(File.FullName,Encoding.UTF8);不起作用。编码。GetEncoding(“iso-8859-1”)起作用了!