我需要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。西里尔字母只是为了说明这个例子。