如何在PySide2中将QByteArray转换为python字符串

时间:2019-08-26 18:37:38

标签: python python-3.x string pyside2 qbytearray

我有一个名为PySide2.QtCore.QByteArray的{​​{1}}对象,它编码了一个python字符串:

roleName

我如何找回解码后的字符串?

1 个答案:

答案 0 :(得分:1)

在Python3中,将类似字节的对象转换为文本字符串时必须指定编码。在PySide / PyQt中,这以与QByteArray相同的方式应用于bytes。如果您未指定和编码,则str()的工作方式类似于repr()

>>> ba = Qt.QByteArray(b'foo')
>>> str(ba)
"b'foo'"
>>> b = b'foo'
>>> str(b)
"b'foo'"

有几种不同的方法可以转换为文本字符串:

>>> str(ba, 'utf-8') # explicit encoding
'foo'
>>> bytes(ba).decode() # default utf-8 encoding
'foo'
>>> ba.data().decode() # default utf-8 encoding
'foo'

最后一个示例特定于QByteArray,但前两个示例应适用于任何类似字节的对象。