Làm cách nào để chuyển đổi chuỗi thành giá trị byte của nó? Tôi có một chuỗi "hello"
và tôi muốn thay đổi thành một cái gì đó như "/x68..."
.Làm thế nào để chuyển đổi chuỗi thành mảng byte?
Trả lời
Python 2.6 trở lên có loại bytearray có thể là thứ bạn đang tìm kiếm. Không giống như các chuỗi, nó có thể thay đổi, tức là, bạn có thể thay đổi các byte riêng lẻ "tại chỗ" thay vì phải tạo một chuỗi hoàn toàn mới. Nó có một kết hợp tốt đẹp của các tính năng của danh sách và chuỗi. Và nó cũng làm cho ý định của bạn rõ ràng, rằng bạn đang làm việc với các byte tùy ý thay vì văn bản.
quote "Tôi muốn thay đổi tất cả những gì trong tập tin (String) thành mảng byte." .. @ kindall của câu trả lời thực hiện chính xác điều đó. 1 cho bytearray() – easysid
'list (bytearray (" hello "))' –
Tôi đã thực hiện kiểm tra tốc độ và 'list (bytearray (" hello "))' nhanh hơn 'map (ord," hello ")' –
Nếu bạn muốn để có được đại diện chuỗi thập lục phân bạn có thể làm:
"hello".encode("hex") # '68656c6c6f'
Và để đáp ứng trình bày tài liệu tham khảo của bạn (đừng mang nó nghiêm túc, đoán đây là không phải những gì bạn thực sự muốn) :
"".join(["/x%02x" % ord(c) for c in "hello"]) # '/x68/x65/x6c/x6c/x6f'
Có lẽ bạn muốn điều này (Python 2):
Đối với một chuỗi Unicode này sẽ quay trở lại mã Unicode điểm:
>>> map(ord,u'Hello, 马克')
[72, 101, 108, 108, 111, 44, 32, 39532, 20811]
Nhưng mã hóa nó để có được giá trị byte cho mã hóa:
>>> 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]
Lưu ý rằng điều này sẽ không trả về các giá trị "byte" cho các ký tự không phải ASCII, bởi vì thứ tự sẽ trả về một cái gì đó lớn hơn 0xFF. – user100464
@ user100464, không phải cho chuỗi byte, mà ở trên là dành cho Python 2 ('map' không trả về một danh sách trong Python 3). Một byte không được cao hơn 0xFF. Ngoài ra, không phải ASCII ở trên 0x7F, không phải 0xFF :) –
- 1. chuyển đổi mảng chuỗi thành mảng byte
- 2. Làm thế nào để chuyển đổi chuỗi Java thành byte []?
- 3. Chuyển đổi một mảng chuỗi thành mảng byte
- 4. Làm thế nào để chuyển đổi mảng byte thành chuỗi trong Common Lisp?
- 5. Chuyển mảng byte thành chuỗi trong javascript
- 6. Mảng kép chuyển đổi thành mảng byte
- 7. Làm thế nào để chuyển đổi byte [] thành InputStream?
- 8. Làm thế nào để chuyển đổi một byte thành bit?
- 9. Làm thế nào để phát hiện kết thúc chuỗi trong mảng byte để chuyển đổi chuỗi?
- 10. F #: Chuyển đổi chuỗi thành một mảng byte
- 11. Làm cách nào để chuyển đổi chuỗi thành mảng mảng?
- 12. Chuyển đổi chuỗi nhị phân thành mảng byte
- 13. Chuyển mảng byte thành chuỗi trong C#
- 14. Làm thế nào để chuyển đổi một mảng byte thành một mảng int?
- 15. Làm cách nào để chuyển đổi chuỗi UTF-8 thành một mảng các byte trong Dart?
- 16. Chuyển đổi mảng byte thành chuỗi trong Silverlight?
- 17. Chuyển đổi chuỗi unicode thành chuỗi byte
- 18. Làm thế nào để chuyển đổi mảng băm băm C# thành chuỗi để chuyển sang API?
- 19. Làm thế nào để chuyển đổi một chuỗi thành một byte [] trong Clojure?
- 20. làm thế nào để chuyển đổi chuỗi thành byte [] trong C#
- 21. Chuyển đổi byte ASCII [] thành chuỗi
- 22. Đọc dòng từ mảng byte (không chuyển đổi mảng byte thành chuỗi)
- 23. Go: làm thế nào để chuyển đổi struct thành [] byte?
- 24. Làm thế nào để chuyển đổi loại 'byte []' thành 'System.Data.Linq.Binary'
- 25. Chuyển đổi java.io.StringWriter thành mảng byte []
- 26. Chuyển đổi BitmapImage thành mảng Byte
- 27. chuyển đổi bitmap thành mảng byte
- 28. Làm thế nào để chuyển đổi Bitmap thành chuỗi Base64?
- 29. Làm cách nào để chuyển đổi bit thành byte?
- 30. Chuyển đổi mảng byte thành PNG/JPG
Bạn nhận ra rằng đó là tất cả chỉ bit và byte tại mức thấp nhất và các chuỗi '" hello "' và '" \ x68 \ x65 \ x6C \ x6C \ x6F "' giống hệt nhau (trừ khi bạn thoát khỏi các dấu gạch chéo ngược thay vì sử dụng chúng để thoát hex)? – delnan
Vâng tôi biết. Tôi chỉ muốn xuất khẩu vào một số mảng ở mức độ thấp như vậy. – Martin
Điều này không có ý nghĩa gì, bạn muốn _actually_ muốn làm gì? (Đây chỉ là một số bước trung gian bạn nghĩ bạn cần làm) – plundra