【问题标题】:Decode an Unicode escaped character from PyQt5 QLabel widget?从 PyQt5 QLabel 小部件解码 Unicode 转义字符?
【发布时间】:2015-09-07 16:55:13
【问题描述】:

我正在尝试从可能包含 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() 和 str("\u2662") 之间有什么区别。为什么一个能正确编码字符而另一个不能?

【问题讨论】:

    标签: python-3.x pyqt5


    【解决方案1】:

    区别在于"\u2662" 不是带有Unicode 转义的字符串,而是带有Unicode 转义的literal 字符串。具有相同 Unicode 转义的字符串将是 "\\u2662"

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-14
      相关资源
      最近更新 更多