如何转换'二进制字符串'Python3中的正常字符串?

例如,我有一个这样的字符串(返回值为subprocess.check_output):

>>> b'a string'
b'a string'

不管我对它做了什么,它总是在字符串之前打印出烦人的b':

>>> print(b'a string')
b'a string'
>>> print(str(b'a string'))
b'a string'

有人知道如何将它作为普通字符串使用或转换成普通字符串吗?

544649 次浏览

解码。

>>> b'a string'.decode('ascii')
'a string'

要从字符串中获取字节,请对其进行编码。

>>> 'a string'.encode('ascii')
b'a string'

如果来自falsetru的答案不工作,你也可以尝试:

>>> b'a string'.decode('utf-8')
'a string'

请参阅codecs库中的官方encode()decode()文档。utf-8是函数的默认编码,但在python3中有几个标准编码,如latin_1utf_32