我从Unity运行一个python脚本,我希望输出显示在一个统一的GUI标签中,输出包含特殊字符,如é,ç,...但是我正在获取符号。 这是我到目前为止尝试但没有运气
using (Process proc = Process.Start (start)) {
using (StreamReader reader = proc.StandardOutput) {
string result = reader.ReadToEnd ();
UTF8Encoding utf8 = new UTF8Encoding ();
byte[] encodedBytes = utf8.GetBytes (result);
UnityEngine.Debug.Log (result);
Message1.text = result;
}
}
结果是输出:它应该是
('fromaje', 'Fausse:')
('Correction suggérér:','fromage')
但是我得到了:
答案 0 :(得分:1)
创建流程时使用:
var proc = new Process {
StartInfo = new ProcessStartInfo {
FileName = "python.exe whatever.py",
Arguments = "yourargs",
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true
}
};
然后通过执行以下操作读取字符串:
proc.Start();
StringBuilder bldr = new StringBuilder();
while (!proc.StandardOutput.EndOfStream) {
bldr.append(proc.StandardOutput.ReadLine()+"\n");
}
您可以通过执行以下操作获得完整输出:
bldr.ToString()