При чтении файла я получаю??? в качестве ввода вместо кириллицы
Большое спасибо за всю помощь до сих пор.
У меня есть следующая проблема:
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". Тогда ваш файл будет правильно обработан с вашим кодом