Tôi hơi bối rối. Trong Python sự khác nhau giữa một chuỗi nhị phân, chuỗi byte, chuỗi unicode và một chuỗi cũ (str) là gì? Tôi đang sử dụng Python 2.6.Sự khác biệt giữa chuỗi nhị phân, chuỗi byte, chuỗi unicode và chuỗi thông thường (str)
Trả lời
Tùy thuộc vào phiên bản trên Python bạn đang sử dụng.
Trong Python 2.x nếu bạn viết 'abc'
, nó có loại str
nhưng điều này có nghĩa là một chuỗi byte. Nếu bạn muốn có một chuỗi Unicode, bạn phải viết u'abc'
.
Trong Python 3.x nếu bạn viết 'abc'
nó vẫn có loại str
nhưng bây giờ điều này có nghĩa là một chuỗi ký tự Unicode. Nếu bạn muốn một chuỗi byte, bạn phải viết b'abc'
. Không được phép viết u'abc'
.
| 2.x | 3.x
--------+--------------------------+-----------------------
Bytes | 'abc' <type 'str'> | b'abc' <type 'bytes'>
Unicode | u'abc' <type 'unicode'> | 'abc' <type 'str'>
Cảm ơn vì điều đó. Chỉ vì vậy tôi hiểu đúng, về cơ bản sự khác biệt giữa một chuỗi byte và một chuỗi bình thường là một chuỗi byte không thể chứa các ký tự unicode? –
@Imran Azad: Bạn có thể nghĩ chuỗi byte là danh sách thứ tự các byte - đó là số nguyên từ 0 đến 255. Một chuỗi Unicode là một danh sách thứ tự các ký tự Unicode (chữ cái, số, dấu chấm câu, những người tuyết nhỏ xíu (☃), v.v.). Sự nhầm lẫn tôi nghĩ đến từ Python 2.x xử lý các chuỗi byte như thể chúng là các chuỗi ký tự. Điều đó gần như hoạt động, ngoại trừ khi bạn bắt đầu sử dụng các ký tự bên ngoài phạm vi ASCII, bạn gặp vấn đề. –
Ah tôi hiểu rồi, cảm ơn. –
- 1. Phân biệt giữa chuỗi và mảng byte?
- 2. chuỗi byte so với chuỗi unicode. Python
- 3. Sự khác biệt giữa chuỗi được khai báo và chuỗi được phân bổ
- 4. sự khác biệt giữa char * và chuỗi
- 5. Chuyển đổi chuỗi unicode thành chuỗi byte
- 6. Sự khác biệt giữa String.getBytes() và Bytes.toBytes (Dữ liệu chuỗi)
- 7. Tạo chuỗi các chuỗi nhị phân với chuỗi k, chuỗi tiếp theo khác hai chữ số
- 8. Sự khác biệt giữa quét và khớp trên chuỗi Ruby
- 9. Sự khác biệt giữa mảng/chuỗi int/char
- 10. Làm thế nào để chuyển đổi 'chuỗi nhị phân' thành chuỗi bình thường trong Python3?
- 11. Trong C# sự khác biệt giữa trường hợp trên và dưới Chuỗi/chuỗi là gì?
- 12. F #: Trong thực tế, sự khác biệt giữa "chuỗi" và "tùy chọn chuỗi" là gì?
- 13. Độ dài chuỗi Delphi Unicode theo byte
- 14. Chuyển đổi một byte thành chuỗi nhị phân trong C#
- 15. Chuyển đổi chuỗi thập lục phân thành chuỗi nhị phân
- 16. Chọn chuỗi và phân biệt chữ hoa chữ thường
- 17. sự khác nhau giữa phương thức chuỗi và phương thức str trong Python là gì?
- 18. nhận byte từ chuỗi unicode trong python
- 19. Chuyển đổi chuỗi nhị phân thành mảng byte
- 20. Sự khác biệt về Python giữa obj in và in obj .__ str __() [ít nhất với Unicode?]
- 21. Chuỗi thành byte/mảng nhị phân trong PHP
- 22. Tìm vị trí của sự khác biệt giữa hai chuỗi
- 23. Sự khác nhau giữa một chuỗi COM (BSTR) và một chuỗi .NET là gì?
- 24. Sự khác biệt giữa char a [] = "string"; char * p = "chuỗi";
- 25. Tìm sự khác biệt giữa các chuỗi trong Ruby
- 26. phát hiện sự khác biệt giữa hai chuỗi với Javascript
- 27. Chuỗi của string.format() và Unicode
- 28. Chuỗi Unicode xóa char khỏi chuỗi
- 29. tập tin nhị phân để chuỗi
- 30. Python: Tạo chuỗi Unicode
Bạn nên chỉ định bạn đang sử dụng Python 2 hay Python 3 vì nó tạo sự khác biệt lớn. –
Bạn đang sử dụng phiên bản Python nào? Và bạn đã gặp phải thuật ngữ "chuỗi nhị phân" trong ngữ cảnh của Python ở đâu? –
@JohnY Tôi đã cập nhật câu hỏi. –