当我在Python 3-PyQt4应用程序中传递包含非ASCII字符的字符串作为命令行参数并尝试通过QCoreApplication.arguments()
访问它们时出现问题:
In [1]: from PyQt4.QtGui import QApplication
In [2]: from PyQt4.QtCore import QCoreApplication
In [3]: QApplication(['a', 'b'])
Out[3]: <PyQt4.QtGui.QApplication at 0x7f987ed07510>
In [4]: QCoreApplication.arguments()
Out[4]: ['a', 'b']
In [5]: QApplication(['a', 'b', 'γ', 'δ', 'v'])
Out[5]: <PyQt4.QtGui.QApplication at 0x7f987ed07808>
In [6]: QCoreApplication.arguments()
Out[6]: ['a', 'b', 'unknown', 'unknown', 'v']
In [7]:
我该如何解决?
编辑:我正在使用Linux。
答案 0 :(得分:1)
QApplication的编码是Latin-1,你需要它是UTF-8。
要解决此问题,您可以先使用.encode('utf-8')
对参数进行手动编码,然后再将其传递给QApplication
。