Я пишу приложение Windows Forms на C #
У меня есть объект процесса, который запускает команду cmd и возвращает ее вывод.
Process Pro = new Process();
Pro.StartInfo.FileName = "cmd.exe";
Pro.StartInfo.Arguments = "<Dos Command here>";
Pro.StartInfo.CreateNoWindow = true;
Pro.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
Pro.StartInfo.RedirectStandardOutput = true;
Pro.StartInfo.UseShellExecute = false;
Pro.Start();
Что отлично работает! Однако, если выходные данные команды не ASCII (в моем случае греческий), выходные данные являются случайными символами. Конечно, проблема с кодировкой.
Если я запускаю тот же код в консольном приложении, все работает гладко.
Я попытался прочитать Базовый поток как UTF-8, но не повезло!
System.IO.StreamReader Rdr = new System.IO.StreamReader(Pro.StandardOutput.BaseStream, Encoding.UTF8);
Есть ли способ правильно прочитать вывод в приложении winform?
Thnx!