Ich versuche, eine Zeichenfolge zu maskieren, indem es wie folgt kodiert:Lese String als Bytes codiert Objekt
>>> 'monkey'.encode('utf-16')
b'\xff\xfem\x00o\x00n\x00k\x00e\x00y\x00'
Ich kopiere dann \xff\xfem\x00o\x00n\x00k\x00e\x00y\x00
und es in eine Datei file.txt einfügen.
Dann möchte ich diese Datei lesen und dekodieren.
>>> with open('file.txt', 'rb') as f:
>>> bytes_object = next(f).strip() # assume file has only one line
>>> bytes_object
b'\\xff\\xfem\\x00o\\x00n\\x00k\\x00e\\x00y\\x00'
Die \ 's werden entkommen ... nicht was ich will.
Die Decodierung funktioniert nicht wie erwartet.
>>> bytes_object.decode('utf-16')
'硜晦硜敦屭へ漰硜〰屮へ欰硜〰履へ礰硜〰'
Klar verstehe ich hier etwas nicht. Gibt es eine Möglichkeit, eine Datei mit dem Text \xff\xfem\x00o\x00n\x00k\x00e\x00y\x00
zu lesen und zu dekodieren?
Weil, wenn Sie kopieren und einfügen kopiert die * Darstellung * nicht die tatsächlichen Bytes. –
Anstelle des Kopierens in eine Textdatei * schreiben Sie die Bytes mit Python * direkt in eine Datei. –
Danke @ juanpa.arrivillaga, was ich gesucht habe, war 'eval (bytes_object) .decode ('utf-16')' – AlexG