Захватывает вывод из стандартного кодирования 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;
Это делает вывод правильно.