Wie kann ich eine Zeichenfolge in ihren Byte-Wert konvertieren? Ich habe eine Zeichenfolge "hello"
und ich möchte zu etwas wie "/x68..."
ändern.Wie konvertiert man String in Byte-Arrays?
Antwort
Python 2.6 und höher haben einen bytearray Typ, der möglicherweise das ist, was Sie suchen. Im Gegensatz zu Zeichenfolgen ist es veränderbar, d. H. Sie können einzelne Bytes "an Ort und Stelle" ändern, anstatt eine ganz neue Zeichenfolge erstellen zu müssen. Es hat eine schöne Mischung aus den Funktionen von Listen und Streichern. Und es macht auch Ihre Absicht klar, dass Sie mit willkürlichen Bytes anstatt mit Text arbeiten.
Zitat "Ich möchte alles, was in der Datei (String) ist in Byte-Array ändern." @ @ @ @@@@@@ kindalls Antwort tut genau das. +1 für bytearray() – easysid
'liste (bytearray (" hallo "))' –
Ich habe einige Geschwindigkeit Tests und 'list (Bytearray (" Hallo ")) ist schneller als' map (ord, "Hallo") ' –
Wenn Sie hexadezimale Zeichenfolgendarstellung erhalten möchten Sie tun können:
"hello".encode("hex") # '68656c6c6f'
Und Ihre Referenz Darstellung gerecht zu werden (nehmen Sie es nicht ernst, denke, das ist nicht das, was Sie wirklich wollen) :
"".join(["/x%02x" % ord(c) for c in "hello"]) # '/x68/x65/x6c/x6c/x6f'
Vielleicht möchten Sie diesen (Python 2):
Für einen String Unicode Dies würde Unicode-Codepunkten zurück:
>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]
aber kodieren es Byte-Werte für die Codierung zu erhalten:
>>> map(ord,u'Hello, 马克'.encode('chinese'))
[72, 101, 108, 108, 111, 44, 32, 194, 237, 191, 203]
>>> map(ord,u'Hello, 马克'.encode('utf8'))
[72, 101, 108, 108, 111, 44, 32, 233, 169, 172, 229, 133, 139]
Beachten Sie, dass dies nicht "Byte" -Werte für Nicht-ASCII-Zeichen zurückgibt, da ord etwas größer als 0xFF zurückgibt. – user100464
@ user100464, nicht für eine Byte-Zeichenfolge, die das obige für Python 2 ist ('map' gibt keine Liste in Python 3 zurück). Ein Byte darf nicht über 0xFF liegen. Außerdem liegt Nicht-ASCII über 0x7F, nicht 0xFF :) –
- 1. Wie konvertiert man [] [2] string in [string] string in go?
- 2. Wie konvertiert man RDD [(String, String)] in RDD [Array [String]]?
- 3. Wie konvertiert man string [] in ArrayList?
- 4. Wie konvertiert man String in Bitset?
- 5. Android Wie konvertiert man Int in String?
- 6. Wie konvertiert man DateTime in String?
- 7. Wie konvertiert man Platform :: String in char *?
- 8. Wie konvertiert man String in int C#
- 9. Wie konvertiert man char * in einen String?
- 10. Swift: Wie konvertiert man String in UInt?
- 11. Wie konvertiert man komplexe Sammlung in String?
- 12. Wie konvertiert man JsonString in String?
- 13. Wie konvertiert man QString in std :: string?
- 14. Wie konvertiert man Java String in byte []?
- 15. Wie konvertiert man einen String in NSdate?
- 16. Wie konvertiert man einen HttpServletRequest in String?
- 17. Wie konvertiert man Akka ByteString in String?
- 18. Wie man httppotifiedfilebase in String-Array konvertiert
- 19. Wie konvertiert man einen String in JavaScript?
- 20. Wie konvertiert man Linq Ergebnisse in string []?
- 21. Wie konvertiert man String in Integer?
- 22. Wie konvertiert man Guid [] in String?
- 23. Wie konvertiert man NSinteger in String
- 24. Wie konvertiert man Newtonsoft.Json.Linq.JToken in einen String?
- 25. Wie konvertiert man JSON in einen String?
- 26. Wie konvertiert man org.jdom.Document in String
- 27. Wie konvertiert man einen String in CharSequence?
- 28. wie man uitextfield integer in string konvertiert
- 29. Wie konvertiert man char in string?
- 30. Wie konvertiert man String in NSDate
Sie erkennen, dass sie alle nur Bits und Bytes auf die ist tiefste Ebene und dass die Zeichenfolgen "Hallo" und "x68 \ x65 \ x6C \ x6C \ x6F" identisch sind (es sei denn, Sie entziehen sich den Backslashes, anstatt sie für hexadezimale Escapes zu verwenden)? – delnan
Ja, ich weiß. Ich möchte nur in ein Array in einem so niedrigen Level exportieren. – Martin
Das macht keinen Sinn, was willst du eigentlich machen? (Dies ist nur ein Zwischenschritt, von dem Sie denken, dass Sie es tun müssen) – plundra