Wie konvertiere ich in Python 3 zwischen Bytes und Strings?

Dies ist eine Frage vom Typ Python 101, die mich jedoch eine Weile verwirrt hat, als ich versuchte, ein Paket zu verwenden, das meine Zeichenfolgeneingabe in Bytes umzuwandeln.

Wie Sie weiter unten sehen werden, habe ich die Antwort für mich selbst gefunden, aber ich fand, dass es sich lohnt, hier aufzuzeichnen, da ich Zeit brauchte, um herauszufinden, was vor sich ging. Es scheint generisch für Python 3 zu sein, daher habe ich mich nicht auf das Originalpaket bezogen, mit dem ich gespielt habe. es scheint kein Fehler zu sein (nur, dass das jeweilige Paket einen Fehler aufwies).tostring() Methode, die klar warnicht Produziere was ich als String verstand ...)

Mein Testprogramm sieht so aus:

import mangler                                 # spoof package

stringThing = """
<Doc>
    <Greeting>Hello World</Greeting>
    <Greeting>你好</Greeting>
</Doc>
"""

# print out the input
print('This is the string input:')
print(stringThing)

# now make the string into bytes
bytesThing = mangler.tostring(stringThing)    # pseudo-code again

# now print it out
print('\nThis is the bytes output:')
print(bytesThing)

Die Ausgabe dieses Codes lautet wie folgt:

This is the string input:

<Doc>
    <Greeting>Hello World</Greeting>
    <Greeting>你好</Greeting>
</Doc>


This is the bytes output:
b'\n<Doc>\n    <Greeting>Hello World</Greeting>\n    <Greeting>\xe4\xbd\xa0\xe5\xa5\xbd</Greeting>\n</Doc>\n'

Es muss also möglich sein, zwischen Bytes und Strings zu konvertieren, um zu vermeiden, dass Nicht-ASCII-Zeichen in Gobbledegook umgewandelt werden.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage