.net - C#通过Process类启动进程后获取的输出乱码?怎么解决呢?
本文介绍了.net - C#通过Process类启动进程后获取的输出乱码?怎么解决呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
这是核心部分:
/// <summary>
/// 运行PHP脚本
/// </summary>
/// <returns></returns>
private string RunPHP()
{
Process scriptProc = new Process();
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = Constants.APP_STARTUP_PATH + Common.Settings.PHPDirName.Value
+ "/php.exe";
info.Arguments = "-f " + codeTmpPath;
info.RedirectStandardError = true;
info.RedirectStandardOutput = true;
info.UseShellExecute = false;
info.CreateNoWindow = true;
scriptProc.StartInfo = info;
try
{
scriptProc.Start();
}
catch (Exception ex)
{
MessageBox.Show("PHP目录不存在!");
return "";
}
string outStr = scriptProc.StandardOutput.ReadToEnd();
// 有错误,读取错误信息
if (String.IsNullOrEmpty(outStr))
{
outStr = scriptProc.StandardError.ReadToEnd();
}
scriptProc.Close();
return outStr;
}
解决方案
设置下 info.StandardOutputEncoding
和 info.StandardErrorEncoding
修改标准输出流和标准错误流的编码。
这篇关于.net - C#通过Process类启动进程后获取的输出乱码?怎么解决呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文