cmd.exe 编码的正确 C# 输入流是什么

whats the right c# input stream for cmd.exe encoding

我正在从我的 C# 应用程序启动一个 cmd.exe 并重定向它的 inputstream.This 对于像 "abc" 这样的普通字符工作正常但是当我尝试重定向像“äöüßáàâ”这样的字符时控制台窗口出现“õ÷³óô”。

Process myProcess = new Process();
myProcess.StartInfo.FileName = "cmd.exe";
myProcess.StartInfo.Arguments = "/K";
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.RedirectStandardInput = true;

myProcess.StartInfo.WorkingDirectory = @"c:\";
myProcess.Start();
StreamWriter myStreamWriter = myProcess.StandardInput;
myStreamWriter.WriteLine("äöüßáàâ");

myStreamWriter.Encoding 说它的编码是代码页 1252 我试图将我的字符串转换成它但它没有改变结果。 如何转换显示正确的字符串?

我把代码和运行一样..当我没有重定向输出时,我看到了与OP相同的代码。不过

Process myProcess = new Process();
myProcess.StartInfo.FileName = "cmd.exe";
myProcess.StartInfo.Arguments = "/K";
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.RedirectStandardInput = true;
//myProcess.StartInfo.StandardOutputEncoding = Encoding.UTF32;
myProcess.StartInfo.RedirectStandardOutput = true;
myProcess.StartInfo.WorkingDirectory = @"c:\";
myProcess.Start();

StreamWriter myStreamWriter = myProcess.StandardInput;
StreamReader myStreamReader = myProcess.StandardOutput;
myStreamWriter.WriteLine("äöüßáàâ");
richTextBox1.Text = myStreamReader.ReadToEnd();

这在文本框中按预期生成了 c:\>äöüßáàâ.. 尽管它似乎没有在显示的控制台 window 中正确显示。