我正在尝试使用以下内容从CSV文件中读取数据:
var lines = File.ReadAllLines(@"c:\test.csv").Select(a => a.Split(';'));
它有效,但包含单词的字段是用希腊字母书写的,它们以符号形式显示。
如何正确设置Encoding
以便阅读那些希腊字符?
答案 0 :(得分:1)
ReadAllLines有重载,文件路径
需要Encodingvar 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