我有以下代码来启动.bat文件并读取进程的输出:
def WriteFirmwareButtonEvent(self):
self.process = QProcess(self)
self.process.setProcessChannelMode(QProcess.MergedChannels)
self.process.readyReadStandardOutput.connect(self.EventDataForReadFromCMD)
self.process.start("run.bat")
def EventDataForReadFromCMD(self):
...
我试过:
^{pr2}$但有没有任何编码给我解码第四个字符的错误 所以我尝试了纯转换为python字符串:
...
output = str(self.process.readAllStandardOutput())
print (output)
会给我:
b'Syst\x82m nem\x85\xa7e nal\x82zt uvedenou cestu.\r\n'
...
output = QByteArray(self.process.readAllStandardOutput())
test = QTextCodec.codecForLocale()
test = test.toUnicode(output)
这在编码时有同样的问题未知字符4
但如果我从命令输出手动运行脚本,应该如下所示:
Systém nemůže nalézt uvedenou cestu.
QProcess的输出是否有一些特殊的编码?他的阅读方法呢?在
我现在唯一能做的就是为每个未知字符定义我自己的编码循环,我希望有更好的解决方案。在
Python有一个称为
mbcs
的编解码器,它根据当前的ANSI代码页对文本进行解码,该代码页应该可以完全满足您的需要:好吧,我找到了答案。。。在
输出:
相关问题 更多 >
编程相关推荐