424 Stimmen

Wie konvertiert man einen "Binärzeichenfolge" in eine normale Zeichenfolge in Python3?

Zum Beispiel habe ich einen String wie diesen (Rückgabewert von subprocess.check_output):

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

Was auch immer ich damit mache, es wird immer mit dem nervigen b' vor dem String gedruckt:

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

Hat jemand Ideen, wie man es als normalen String verwenden oder in einen normalen String umwandeln kann?

606voto

falsetru Punkte 353059

Entschlüsseln Sie es.

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

Um Bytes aus einem String zu erhalten, encodieren Sie diesen.

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

126voto

kame Punkte 18813

Wenn die Antwort von falsetru nicht funktioniert hat, könnten Sie auch Folgendes versuchen:

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

11voto

Daniel Argüelles Punkte 2010

Bitte siehe die offizielle encode() und decode() Dokumentation der codecs Bibliothek. utf-8 ist die Standardcodierung für die Funktionen, aber es gibt mehrere Standardcodierungen in Python 3, wie latin_1 oder utf_32.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X