Es ist alles in Ordnung mit deiner Schnur! Sie haben nur verwechselt encode()
y decode()
. Die Zeichenfolge besteht aus sinnvollen Symbolen. Um sie in Bytes umzuwandeln, die in einer Datei gespeichert oder über das Internet übertragen werden können, verwenden Sie encode()
mit einer Kodierung wie UTF-8. Jede Kodierung ist ein Schema für die Umwandlung sinnvoller Symbole in flache Ausgabebytes.
Wenn es an der Zeit ist, das Gegenteil zu tun - einige rohe Bytes aus einer Datei oder einem Socket zu nehmen und sie in Symbole wie Buchstaben und Zahlen umzuwandeln - werden Sie dekodieren die Bytes unter Verwendung der decode()
Methode von Bytestrings 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 diese lange Reihe von Bytes? Das sind die Bytes, die UTF-8 verwendet, um Ihre Zeichenfolge darzustellen, wenn Sie die Zeichenfolge über ein Netzwerk übertragen oder in einem Dokument speichern müssen. Es gibt noch viele andere Kodierungen, aber es scheint die beliebteste zu sein. Jede Kodierung kann sinnvolle Symbole wie und in Bytes umwandeln - die kleinen 8-Bit-Zahlen, 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')
''