读取包含希腊字符的CSV文件

时间:2013-05-17 10:03:58

标签: c# asp.net .net csv character-encoding

我正在尝试使用以下内容从CSV文件中读取数据:

var lines = File.ReadAllLines(@"c:\test.csv").Select(a => a.Split(';'));

它有效,但包含单词的字段是用希腊字母书写的,它们以符号形式显示。 如何正确设置Encoding以便阅读那些希腊字符?

1 个答案:

答案 0 :(得分:1)

ReadAllLines有重载,文件路径

需要Encoding
var lines = File.ReadAllLines(@"c:\test.csv", Encoding.Unicode)
                .Select(line => line.Split(';'));    

<强>测试

File.WriteAllText(@"c:\test.csv", "ϗϡϢϣϤ", Encoding.Unicode);

Console.WriteLine(File.ReadAllLines(@"c:\test.csv", Encoding.Unicode));

将打印:

  

&ϡϢϣϤ

要找出实际写入文件的编码,请使用下一个代码段:

using (var r = new StreamReader(@"c:\test.csv", detectEncodingFromByteOrderMarks: true)) 
{
    Console.WriteLine (r.CurrentEncoding.BodyName);
}

对于我的场景,它将打印

utf-8