在GUI标签统一中显示带有特殊字符的python输出

时间:2018-01-06 10:04:59

标签: c# python-3.x unity3d utf-8 special-characters

我从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')

但是我得到了:

enter image description here

1 个答案:

答案 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()