Захватывает вывод из стандартного кодирования io?

Я передаю вывод приложения в мое приложение.NET.

Кодировка несколько странная. Письма ÅÄÖ появляются как ├Ñ ├ñ ├Â

Я пытался конвертировать туда-сюда из различных кодировок без какого-либо успеха. Кто-нибудь знает, как строка должна быть преобразована правильно здесь?

например, документация для приложения говорит, что вывод - UTF8, поэтому я попробовал это:

byte[] encodedBytes = Encoding.UTF8.GetBytes(theOutput);
var res = Encoding.Default.GetString(encodedBytes);

Который дает неверный результат.

редактировать: код:

var processStartInfo = new ProcessStartInfo
{
   CreateNoWindow = true,
   RedirectStandardOutput = true,
   RedirectStandardInput = true,
   UseShellExecute = false,
   Arguments = a,
   FileName = path + "\\phantomjs.exe"
};

var process = new Process
{
   StartInfo = processStartInfo,
   EnableRaisingEvents = true
};

//capturing output here
process.OutputDataReceived += 
   (sender, args) => outputBuilder.Append(args.Data);

process.Start();
process.BeginOutputReadLine();
process.WaitForExit(20000);
process.CancelOutputRead();

1 ответ

Нашел решение. Вы можете установить

   processStartInfo.StandardOutputEncoding = Encoding.UTF8;

Это делает вывод правильно.

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