Wie konvertiert man String in Byte-Arrays?
Wie kann ich die Konvertierung einer Zeichenfolge in ein byte-Wert? Ich habe einen string "hello"
und ich ändern möchten, ist so etwas wie "/x68..."
.
Kommentar zu dem Problem
Sie erkennen, dass es alles nur bits und bytes, die auf der untersten Ebene und die Zeichenfolgen
"Hallo"
und "\x68\x65\x6C\x6C\x6F"
sind identisch (es sei denn, Sie entkommen die backslashes statt Sie für hex entweicht)? Das macht keinen Sinn, was Sie tun, tatsächlich machen wollen? (Das ist nur einige Zwischenschritt Sie denken, Sie brauchen zu tun)
Was versuchen Sie zu tun, genau? Es ist erwähnenswert, dass die
str
- Typ in Python im Grunde genommen ist nur ein Satz von bytes, die (was bedeutet, dass es nicht eine Darstellung haben, wie Unicode, befestigt und kann einfach nur eine beliebige Folge von bytes, trotz seines namens). Wir sollten hinzufügen: wenn Sie mit Python 3,
str
unicode. Für die Konvertierung in Byte, do en.encode()
(Sie können auch angeben, welche Zeichenkodierung Sie wollen, sonst wird es UTF-8 verwenden). Für diejenigen, die sich Fragen, warum würden Sie dies tun möchten: ich fand, dass dies nützlich für das Parsen von binären Daten Lesen mit pySerial.
InformationsquelleAutor der Frage Martin | 2010-12-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Python 2.6 und höher verfügen über eine bytearray geben was kann das sein, was du bist suchen für. Im Gegensatz zu strings, es ist veränderlich, D. H., Sie können ändern einzelner bytes "in", anstatt eine ganz neue Zeichenfolge. Es hat eine schöne Mischung von Funktionen, Listen und strings. Und es macht auch Ihre Absicht klar, dass Sie arbeiten mit beliebigen bytes anstelle von text.
InformationsquelleAutor der Antwort kindall
Vielleicht möchten Sie diese (Python 2):
Für eine Unicode-Zeichenfolge dieser zurückkehren würde, Unicode code points:
Aber Sie verschlüsseln, um byte-Werte für die Kodierung:
InformationsquelleAutor der Antwort Mark Tolonen
Wenn Sie möchten, zu bekommen, hexadezimale string-Darstellung, die Sie tun könnten:
Zu treffen und Ihre Referenz-Darstellung (nehmen Sie es nicht ernst, denke, das ist nicht, was Sie wirklich wollen):
InformationsquelleAutor der Antwort barti_ddu