首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将QByteArray转换为PySide2中的python字符串

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

Stack Overflow用户
提问于 2019-08-26 18:37:38
回答 1查看 7.6K关注 0票数 10

我有一个名为PySide2.QtCore.QByteArrayroleName对象,它编码了一个python字符串:

代码语言:javascript
复制
propName = metaProp.name() // this is call of [const char *QMetaProperty::name() ](https://doc.qt.io/qt-5/qmetaproperty.html#name)
// encode the object
roleName = QByteArray(propName.encode())
print(roleName) // this gives b'myname'
// now I would like to get just "myname" without the "b" 
roleString = str(roleName)
print(roleString) // this gives the same output as above

我怎么才能拿回我的解码字符串?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-26 22:00:22

在Python3中,当将类似字节的对象转换为文本字符串时,必须指定编码。在PySide/PyQt中,这适用于QByteArray,就像它适用于bytes一样。如果不指定和编码,str()的工作方式类似于repr()

代码语言:javascript
复制
>>> ba = Qt.QByteArray(b'foo')
>>> str(ba)
"b'foo'"
>>> b = b'foo'
>>> str(b)
"b'foo'"

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

代码语言:javascript
复制
>>> str(ba, 'utf-8') # explicit encoding
'foo'
>>> bytes(ba).decode() # default utf-8 encoding
'foo'
>>> ba.data().decode() # default utf-8 encoding
'foo'

最后一个例子是特定于QByteArray的,但是前两个应该可以处理任何类似字节的对象。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57663191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档