来自 .csv 的 StreamReader - "foreign" 个字符和空白值显示为“?”

StreamReader from .csv - "foreign" chars and blank values showing up as '?'

我在使用 streamreader 读取 .csv 文件时遇到了两个问题。我想要做的是获取值,将它们放入我稍后将使用的变量中,通过 Selenium 将值输入到浏览器中。 这是我的代码(最后的 Console.Writeline 只是为了调试):

        string[] read;
        char[] seperators = { ';' };
        StreamReader sr = new StreamReader(@"C:\filename.csv", Encoding.Default, true);
        string data = sr.ReadLine();

        while((data = sr.ReadLine()) != null)
        {
            read = data.Split(seperators);
            string cpr = read[0];
            string ydelsesKode = read[1];
            string startDato = read[3];
            string stopDato = read[4];
            string leverandoer = read[5];
            string leverandoerAdd = read[6];
            Console.WriteLine(cpr + " " + ydelsesKode + " " + startDato + " " + stopDato + " " + leverandoer + " " + leverandoerAdd);
        }

代码本身运行良好 - 但我有两个问题:

  1. 该文件包含丹麦语值,这意味着我得到了 åøæ,但它们显示为“?”在控制台中。在记事本中这些字符看起来不错。
  2. 空白值也显示为“?”。有什么办法可以将它们变成空白 space 这样 Selenium 就不会“混淆”了吗? 示例输出:

1372 1.1 01-10-2013 01-10-2013 Bakkev?nget - dagcenter ?

Bakkev?nget 应该是 Bakkevænget 和最后的 '?'应该是空白的(或者更确切地说,银行 space)。

通过使用制表符分隔的 unicode .txt 文件而不是 .csv 来“修复”它。出于某种原因,我的 excel 版本没有保存为 unicode .csv 的选项...

不太了解“自己动手”解析器的问题,但也许有一天有人会花时间向我更好地解释它。在这个 c# 东西上还是新手...