4

アプリの出力を .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();
4

1 に答える 1