从PyQt5 QLabel小部件解码Unicode转义字符?

时间:2015-09-07 16:55:14

标签: python-3.x pyqt5

我正在尝试从可能包含Unicode转义序列的QLineEdit中读取文本序列,并将其打印到QLabel并在PyQt5和Python 3.4中显示正确的字符。

我尝试了很多不同的东西,我在这里阅读了stackoverflow,但找不到适合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()之间有什么区别。为什么一个正确编码字符而另一个不编码呢?

1 个答案:

答案 0 :(得分:0)

不同之处在于"\u2662"不是具有Unicode转义的字符串,而是具有Unicode转义的字符串 literal 。具有相同Unicode转义的字符串为"\\u2662"

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