umwandeln byte-array in string ohne die Interpretation der bytes?
Ich habe ein GSM-Datum/Zeit-Stempel, der von einer PDU codierte SMS es formatiert ist, wie so
\x90,\x21,\x51,\x91,\x40,\x33
format yy,mm,dd,hh,mm,ss
Ich Sie gelesen habe aus einer binären Datei in ein byte-array. Ich will Sie konvertieren zu einem string, aber ohne jegliche Dekodierung ich will bis zum Ende mit einer Zeichenfolge, die enthält 902151914033. Ich habe dann umkehren müssen je 2 Zeichen in der Zeichenfolge.
Kann jemand mir einige Hinweise?
Vielen Dank
- Also in deinem Eingang, 0x90 oder '\x90' steht für das Jahr (20)09, 0x21 stellt den Monat 12, 0x51 stellt den Tag 15, etc??? Was für eine brillante Geist entwickelt, dass Codierungsschema?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konvertieren hex:
hexdata = ''.join('%02x' % ord(byte) for byte in bindata)
Umkehren jedem anderen hex-Zeichen (wenn ich Verständnis richtig):
hexdata = ''.join(('%02x' % ord(byte))[::-1] for byte in bindata)
Dieser sollte Ihnen den Einstieg:
Was du meinst ist, dass Sie tun wollen, zu tun, einige Bearbeitung! Der nicht verarbeitete bytes sind die meisten einfach dargestellt als Zeichen.
Ich denke, was Sie wollen, ist etwas entlang der Linien von:
Denen ich mir sicher sein könnte, verpackt in eine anonyme Funktion, wenn nötig.
'\x90'
istchr(0x90)
und nichtchr(90)
. Den LC-Lösungen die besser sind obwohl.Wenn in Ihrer Frage, die Zeichenfolge, die Sie zur Verfügung gestellt haben, ist die wörtliche Menge an Byte (ascii), einschließlich der \ und , und Sie möchten, Streifen Sie aus, Sie konnte die binascii Modul und str.ersetzen:
Den daraus resultierenden plainstring bestehen wird, nur die Ziffern.