我正在尝试使用以下命令从 CSV 文件中读取数据:
var lines = File.ReadAllLines(@"c:\test.csv").Select(a => a.Split(';'));
它可以工作,但是包含单词的字段是用希腊字符编写的,并且它们以符号的形式呈现。如何Encoding
正确设置才能阅读那些希腊字符?
我正在尝试使用以下命令从 CSV 文件中读取数据:
var lines = File.ReadAllLines(@"c:\test.csv").Select(a => a.Split(';'));
它可以工作,但是包含单词的字段是用希腊字符编写的,并且它们以符号的形式呈现。如何Encoding
正确设置才能阅读那些希腊字符?
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