アプリの出力を .NET アプリにパイプしています。
エンコーディングはやや奇妙です。文字 ÅÄÖ は ├Ñ ├ñ ├ として表示されます</p>
私はさまざまな異なるエンコーディングから前後に変換しようとしましたが、成功しませんでした。ここで文字列を正しく変換する方法を知っている人はいますか?
たとえば、アプリのドキュメントには出力が 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();