2013-03-20 90 views
0

操作系统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,在控制台中我看到正确的文本。我怎样才能获得通过我的代码的有效文本?

问候

回答