1

stdinUTF-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。キリル文字は、例を説明するためのものです。

4

0 に答える 0