Es ist nichts mit Ihrem String falsch! Sie haben nur encode()
und decode()
durcheinander gebracht. Der String enthält sinnvolle Symbole. Um ihn in Bytes umzuwandeln, die in einer Datei gespeichert oder über das Internet übertragen werden können, verwenden Sie encode()
mit einer Codierung wie UTF-8. Jede Codierung ist ein Schema zum Umwandeln sinnvoller Symbole in flache Ausgabebits.
Wenn es an der Zeit ist, das Gegenteil zu tun - also rohe Bytes aus einer Datei oder einem Socket in Symbole wie Buchstaben und Zahlen umzuwandeln - verwenden Sie die Methode decode()
von Byte-Strings in Python 3.
>>> str_version = ''
>>> str_version.encode('utf-8')
b'\xe1\x9e\x93\xe1\x9e\x99\xe1\x9f\x84\xe1\x9e\x94\xe1\x9e\xb6\xe1\x9e\x99'
Sehen Sie sich diese lange Zeile von Bytes an? Das sind die Bytes, die UTF-8 verwendet, um Ihren String darzustellen, wenn Sie den String über ein Netzwerk übertragen müssen oder in einem Dokument speichern müssen. Es gibt viele andere verwendete Codierungen, aber UTF-8 scheint die beliebteste zu sein. Jede Codierung kann sinnvolle Symbole wie ⱓ und in Bytes umwandeln - die kleinen 8-Bit-Nummern, mit denen Computer kommunizieren.
>>> rawbytes = str_version.encode('utf-8')
>>> rawbytes
b'\xe1\x9e\x93\xe1\x9e\x99\xe1\x9f\x84\xe1\x9e\x94\xe1\x9e\xb6\xe1\x9e\x99'
>>> rawbytes.decode('utf-8')
''