C# Process调用CMD.exe得到的结果不符


public static string ExecuteInCmd(string cmdline)
    {
        using (var process = new Process())
        {
            process.StartInfo.StandardOutputEncoding = Encoding.UTF8;
            process.StartInfo.FileName = "C:\\Windows\\system32\\cmd.exe";
            process.StartInfo.UseShellExecute = false;
            process.StartInfo.RedirectStandardInput = true;
            process.StartInfo.RedirectStandardOutput = true;
            process.StartInfo.RedirectStandardError = true;
            process.StartInfo.CreateNoWindow = true;
            process.Start();
            //process.StandardInput.AutoFlush = true;

            process.StandardInput.WriteLine(cmdline);
            process.StandardInput.WriteLine("exit");
            //获取cmd窗口的输出信息  
            string output = process.StandardOutput.ReadLine();

            if (!process.StandardOutput.EndOfStream) {
            output=output+ process.StandardOutput.ReadLine()+"\n";
            }


            process.WaitForExit();
            process.Close();
            return output;
        }
    }

我是在unity上面运行的,我可以输入指令,例如 javac hello.java都能编译,但是假如需要读取输出,就会出现这种乱码结果,另外结果也读取不出来

img