操作系统Windows,C#。 我有输出编码的问题。无效编码重定向输出
App.Document doc = cad.DocumentManager.MdiActiveDocument;
if (doc != null)
doc.Editor.WriteMessage("\nProcess started. Please, wait...\n");
String exeName = Path.Combine(curDir, "recovery");
Process proc = new Process();
ProcessStartInfo info = new ProcessStartInfo();
info.CreateNoWindow = true;
info.RedirectStandardOutput = true;
info.UseShellExecute = false;
// info.StandardOutputEncoding = Encoding.GetEncoding(1251);
info.StandardOutputEncoding = Console.OutputEncoding;
info.FileName = exeName;
info.Arguments = String.Format("{0} -clear", @"%zipDir%\acad_R17.2.zip");
proc.StartInfo = info;
proc.Start();
String outputText = proc.StandardOutput.ReadToEnd();
proc.WaitForExit();
if (doc != null) {
doc.Editor.WriteMessage(outputText);
doc.Editor.WriteMessage(Environment.NewLine);
doc.Editor.WriteMessage("Operation is complete.");
doc.Editor.WriteMessage(Environment.NewLine);
}
输出结果:
恢复; (C)安德烈布什曼,2013
ЋЎaЎ®vYe在 “®Ј” %acad_R17.2%”。 ¬“Ґ¬Ґv:AutoCAD的2009 /; -Ґ “Ґў®© 在” ®Ј:C:\ Program Files文件\欧特克; ЋyЁЎYe:ЋvYe§®ў¤®bvhYiҐYI®YihvЁ “acad.CUI”。在ЋЎaЎ®vYe “®Ј” %rmb_acad_R17.2%”。在ЋЎaЎ®vYe “®Ј ” %local_acad_R17.2%”。在ЋЎaЎ®vYe “®Ј” %allUsers_acad_R17.2%”。 ЋЎaЎ®vYe在 “®Ј” %shared_acad_R17.2%”。 ¬“Ґ¬Ґv:的Autodesk共享/; -Ґ “Ґў®©在” ®Ј:C:\ Program Files文件\ Common Files文件; ЋyЁЎYe:ЋvYe§®ў ¤®bvhYiҐYI®YihvЁ “C:\ Program Files文件\ Common Files文件\欧特克共享\”。 ЋЎaЎ®vYe在 “®Ј” %ext_acad_R17.2%”。
但是,如果我通过CMD.EXE推出recovery.exe,在控制台中我看到正确的文本。我怎样才能获得通过我的代码的有效文本?
问候