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

本文关键字:CSV 文件 字符 包含希 读取 | 更新日期: 2023-09-27 18:14:17

我正在尝试使用以下命令从CSV文件读取数据:

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

它可以工作,但是包含单词的字段是用希腊字符书写的,并且它们作为符号表示。我怎样才能正确地设置Encoding以读取这些希腊字符?

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

ReadAllLines有重载,它接受沿文件路径的编码

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