0

当我在我的 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。

4

1 回答 1

1

QApplication 的编码是 Latin-1,你需要它是 UTF-8。

为了解决这个问题,您可以在将参数.encode('utf-8')传递给 . 之前手动使用 ,对参数进行编码QApplication

于 2013-09-12T17:55:58.717 回答