从IPython捕获标准输出时,输出损坏/乱码

从IPython捕获标准输出时,输出损坏/乱码,python,ipython,Python,Ipython,这里提出了一个类似的问题:,但答案并不令人满意 我试图做的是捕获标准输出,将其写入PyQt4 QEditText,同时正常地将其发送到终端 我正在使用Python2.7和Ubuntu12.04LTS 问题是,当我在程序中嵌入一个IPython终端时,终端输出文本会被乱码,我会失去自动完成功能 我能够在我的Ubuntu机器上非常简单地重现这个问题,而windows上似乎不存在这个问题 在我的ubuntu termianl中: ipython import IPython.utils.io tee

这里提出了一个类似的问题:,但答案并不令人满意

我试图做的是捕获标准输出,将其写入PyQt4 QEditText,同时正常地将其发送到终端

我正在使用Python2.7和Ubuntu12.04LTS

问题是,当我在程序中嵌入一个IPython终端时,终端输出文本会被乱码,我会失去自动完成功能

我能够在我的Ubuntu机器上非常简单地重现这个问题,而windows上似乎不存在这个问题

在我的ubuntu termianl中:

ipython 
import IPython.utils.io
tee = IPython.utils.io.Tee('fds')  
就在这里,文本在尝试使用Tee对象时被弄乱了

在我的程序中,我做的事情有点不同,但它归结为使用自定义对象覆盖sys.stdout,然后在调用write或flush时,我记录捕获的文本并将其发送回原始stdout和PyQt4 gui


那么,无论何时调用write或flush命令,有没有一种方法可以安全地查看standard out?有没有一种不破坏IPython终端的方法

这是由于终端中文本着色的特殊编码。尝试使用“ipython-classic”。

您能提供一个乱码输出的示例吗