2015-09-07 32 views
0

我想從QLineEdit中讀取可能包含Unicode轉義序列的文本序列,並將其打印到QLabel並在PyQt5和Python 3.4中顯示正確的字符。從PyQt5 QLabel部件解碼Unicode轉義字符?

我想,我在這裏讀計算器,但無法找到Python 3的

def on_pushButton_clicked(self): 
    text = self.lineEdit.text() 
    self.label.setText(text) 

工作解決方案現在,如果我這樣做許多不同的事情:

decodedText = str("dsfadsfa \u2662 \u8f1d \u2662").encode("utf-8") 
    self.label.setText(text.decode("utf-8") 

這確實打印出正確的字符。如果我將上述方法應用於相同的方法,我會得到轉義序列。 我不明白QLineEdit的text()和str(「\ u2662」)返回的str()之間有什麼區別。爲什麼一個人恰當地編碼字符而另一個沒有?

回答

0

區別在於"\u2662"不是帶有Unicode轉義的字符串,而是帶有Unicode轉義的字符串字符。具有相同Unicode轉義符的字符串將是"\\u2662"

3>> codecs.getdecoder('unicode-escape')('\\u2662') 
('♢', 6) 
相關問題