[英]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.