Computer >> Máy Tính >  >> Lập trình >> Python

Sự khác biệt giữa một chuỗi và một chuỗi byte trong Python là gì?

Một chuỗi là một chuỗi các ký tự; đây là một khái niệm trừu tượng và không thể được lưu trữ trực tiếp trên đĩa. Chuỗi byte là một chuỗi các byte - những thứ có thể được lưu trữ trên đĩa. Ánh xạ giữa chúng là một kiểu mã hóa - có khá nhiều trong số này (và có thể có vô số loại) - và bạn cần biết cách nào áp dụng trong trường hợp cụ thể để thực hiện chuyển đổi, vì một mã hóa khác có thể ánh xạ các byte giống nhau sang một chuỗi khác. Ví dụ:cùng một chuỗi byte có thể đại diện cho 2 chuỗi khác nhau ở 2 bảng mã khác nhau.

Ví dụ

>>> b'\xcf\x84o\xcf\x81\xce\xbdo\xcf\x82'.decode('utf-16')
'蓏콯캁澽苏'
>>> b'\xcf\x84o\xcf\x81\xce\xbdo\xcf\x82'.decode('utf-8')
'τoρνoς'

Khi bạn biết mã hóa nào sẽ sử dụng, bạn có thể sử dụng phương thức .decode () của chuỗi byte để lấy chuỗi ký tự phù hợp từ nó. Phương thức .encode () của một chuỗi ký tự đi ngược lại và mã hóa chuỗi ký tự dưới dạng chuỗi byte.