python3.7 unicode的内置exec()问题

2024-09-30 18:22:23 发布

您现在位置:Python中文网/ 问答频道 /正文

假设ex1.py包含:

 exec(open('ex2.py').read())

和ex2.py包含:

from PyQt5.QtWidgets import *
class HelloWindow(QWidget):
    def __init__(self):
        QWidget.__init__(self)
        self.x = "وه شه نی گیان" #some Unicode words
        self.y = "قوربانه ت" #some Unicode words
        self.setWindowTitle(self.x)
        gridLayout = QGridLayout(self)
        self.title = QLabel(self.y)
        gridLayout.addWidget(self.title, 0, 0)
        self.setLayout(gridLayout)
app = QApplication([])
mainWin = HelloWindow()
mainWin.resize(400,200)
mainWin.show()
app.exec_()

环境:windows 7 64位、python 3.7.4、pyqt 5.12.2

打开cmd并运行(pythonex2.py)可以正确地显示标题和标签中的Unicode文本,而且工作正常;但是运行(pythonex1.py)会破坏文本编码。你知道吗

使用kivy而不是pyqt5可以得到相同的结果。我相信不是pyqt5的虫子, 以上两种方法在ubuntu18中都非常有效。你知道吗

使用import而不是exec解决了这个问题,但我不希望这样,因为我必须再次导入每个脚本文件中的所有内容,而且我有大量的脚本文件。有谁能告诉我如何克服这个问题吗? 先谢谢你。你知道吗


Tags: pyimportselfapptitleinitunicodesome