簡體   English   中英

python3.7 內建 exec() unicode 問題

[英]python3.7 built-in exec() problem with unicode

假設 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並運行(python ex2.py)正確顯示標題和標簽中的Unicode文本,並且工作正常; 但是運行(python ex1.py)會破壞文本的編碼。

使用 kivy 而不是 pyqt5 給出相同的結果。 我相信這不是 pyqt5 的錯誤,上述兩種方法在 Ubuntu 18 中都可以完美運行。

使用 import 而不是 exec 解決了問題,但我不希望那樣,因為我必須在每個腳本文件中再次導入所有內容,而且我有很多。 誰能告訴我如何克服這個問題? 先感謝您。

exec(open('ex2.py', encoding='utf-8').read())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM