Dies ist eine Frage vom Typ Python 101, aber sie hat mich eine Weile verwirrt, als ich versuchte, ein Paket zu verwenden, das meine Zeichenfolgeneingabe in Bytes umzuwandeln schien.
Wie Sie weiter unten sehen werden, habe ich die Antwort für mich selbst gefunden, aber ich fand, dass es sich lohnt, hier aufzunehmen, da ich Zeit brauchte, um herauszufinden, was los war. 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 eine .tostring()
Methode hatte, die eindeutig nicht das erzeugte, was ich als Zeichenfolge verstand ...)
Mein Testprogramm sieht folgendermaßen 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 ergibt Folgendes:
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 in der Lage sein, zwischen Bytes und Strings zu konvertieren, um zu vermeiden, dass Nicht-ASCII-Zeichen in Gobbledegook umgewandelt werden.