web-dev-qa-db-ja.com

Python 3で 'バイナリ文字列'を通常の文字列に変換するにはどうすればいいですか?

たとえば、次のような文字列があります(戻り値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'

それを通常の文字列として使用する方法、または通常の文字列に変換する方法について何かアイデアがありますか。

172
Hanfei Sun

それをデコードします。

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

文字列からバイトを取得するには、それをエンコードします。

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

falsetru の答えがうまくいかない場合は、次の方法も試してください。

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