Ich habe ein Byte-Objekt:
%Vor%Wie bekomme ich eine Zeichenfolge davon? So:
%Vor%Ich habe es versucht:
%Vor%Gibt es keine Möglichkeit dies zu tun?
Sie wollen hier einfach nur aus ASCII entschlüsseln, Ihre Bytefolge ist bereits und stellt hexadezimale Zahlen in ASCII-Zeichen dar:
%Vor%Alles, was Sie versucht haben, interpretiert die Bytes als numerische Daten, entweder als hexadezimale Zahlen, die Bytes darstellen, oder als Bytes, die numerische Daten darstellen.
Ihr erster Versuch nimmt also den Wert 06
als Hexadezimalzahl und wandelt diesen in den Bytewert 6
um, und 7b
wird in den Bytewert 123 umgewandelt, der der ASCII-Codepunkt für {
ist. Zeichen.
Beim zweiten Versuch konvertieren Sie jedes Byte in eine hexadezimale Darstellung seines numerischen Werts. Das 0
-Byte wird als die ganze Zahl 48 (der ASCII-Codepunkt für das '0'
-Zeichen) interpretiert, der in Hexadezimal% 30
ist. '6'
ist 54, oder 36
in Hex usw.
Die Darstellung bytes
kann verwirrend sein. b'0607'
ist nicht dasselbe wie bytes([0x06,0x07]
). b'0607'
ist eigentlich 4 Bytes [48,54,48,55]
, wobei 48 der ASCII Code für 0
, etc ist.
als solches b'0607'
ist bereits ein ASCII-String, wird aber als bytes
dargestellt, wenn Sie es in str
konvertieren wollen, müssen Sie b'0607'.decode("ascii")
(damit Sie eine str aus diesen Bytes konstruieren, die sie wie ASCII interpretieren) Code (wie sie sind)).
Im Allgemeinen konvertieren Sie bytes
in eine hexadezimale Zeichenfolge wie folgt:
Tags und Links python python-3.x hex