При чтении файла я получаю??? в качестве ввода вместо кириллицы

Большое спасибо за всю помощь до сих пор.

У меня есть следующая проблема:

 static void Main(string[] args)

    {
        Dictionary<string, string> dict = new Dictionary<string, string>();

        using (StreamReader reader = new StreamReader(@"C:\test.csv"))
        {
            string line;
            while ((line = reader.ReadLine()) != null)
            {
                string[] parts = line.Split(',');
                dict.Add(parts[0],parts[1]);
            }
        }
        Console.WriteLine("enter name:");
            string name  = Console.ReadLine();
            if (dict.ContainsKey(name))
            {
                //
                string value = dict[name];
                Console.WriteLine(dict[name]);//value);
            }
            Console.ReadLine();

    }
}

И это мой Outout:

enter name:
ILIA
????

Это мой файл CSV

ILIA,ИЛИЯ

Можете ли вы помочь мне разобраться с этим???? и получить правильные символы кириллицы?

Заранее благодарю за любую помощь!

Ilia

3 ответа

Пытаться:

StreamReader reader = new streamReader(@"C:\test.csv",Encoding.GetEncoding(1251)) ;

Выходная кодировка вашей консоли, скорее всего, установлена ​​в ASCII. Попробуйте добавить следующую команду перед записью в консоль:

Console.OutputEncoding = System.Text.Encoding.Unicode;

Также возможно, что шрифт, который вы выбрали для консоли, не поддерживает Unicode. Чтобы это исправить, откройте командную консоль, щелкните значок в верхнем левом углу окна с надписью "C:\". Выберите свойства. Выберите шрифт. Попробуйте выбрать другой шрифт.

Я заметил эту неприятную проблему при чтении файлов с кириллицей некоторое время назад. Самое простое решение - открыть файл в Notepad++ или любом аналогичном текстовом редакторе, который может изменить кодировку, и выбрать, например, из меню "Кодировка" -> "Преобразовать в UTF-8". Тогда ваш файл будет правильно обработан с вашим кодом

Другие вопросы по тегам