stdin
UTF-8 エンコーディングを使用してプロセスに文字列を送信する必要があります。私はこれをします:
var info = new ProcessStartInfo("process.exe", "");
info.UseShellExecute = false;
info.CreateNoWindow = false;
info.RedirectStandardInput = true;
info.RedirectStandardOutput = true;
var process = System.Diagnostics.Process.Start(info);
string stringToSend = "человек";
byte[] utf16Bytes = Encoding.Unicode.GetBytes(stringToSend);
byte[] utf8Bytes = Encoding.Convert(Encoding.Unicode, Encoding.UTF8, utf16Bytes);
//But how do I send it now?
//process.StandardInput.WriteLine(stringToSend); //Replaces all non-ASCII chars with ????
しかし、プロセスが受け取るのは???? 英語以外の文字の代わりに。
PS。キリル文字は、例を説明するためのものです。