Вам нужно установить StandardOutputEncoding
для вашего ProcessStartInfo
объекта в вашем тестовом случае:
var process = new Process();
var startInfo = new ProcessStartInfo(@"yourapp.exe");
startInfo.StandardOutputEncoding = Encoding.GetEncoding(850);
Вы можете узнать, какую кодовую страницу вы используете в своем консольном приложении, запустив
Console.WriteLine(Console.Out.Encoding.CodePage);
, который возвращает 850 (западноевропейский DOS)
Вы также можете использовать свойство BodyName
в качестве аргумента для GetEncoding
, то есть:
startInfo.StandardOutputEncoding = Encoding.GetEncoding("ibm850");