Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Sự khác biệt giữa encode/decode trong Python là gì?

Việc biểu diễn một chuỗi Unicode dưới dạng chuỗi byte được gọi là mã hóa (encoding). Việc chuyển đổi một chuỗi byte thành chuỗi Unicode được gọi là giải mã (decoding). Bạn thường mã hóa một chuỗi Unicode khi cần sử dụng nó cho I/O, ví dụ truyền qua mạng hoặc lưu vào file đĩa. Bạn thường giải mã chuỗi byte khi nhận dữ liệu chuỗi từ mạng hoặc từ file đĩa.

Để mã hóa một chuỗi bằng một encoding cho trước, bạn có thể làm như sau:

>>> u'æøå'.encode('utf8')
'\\xc3\\x83\\xc2\\xa6\\xc3\\x83\\xc2\\xb8\\xc3\\x83\\xc2\\xa5'

Để giải mã một chuỗi (sử dụng cùng encoding đã dùng để mã hóa), bạn cần gọi decode(encoding). Ví dụ:

>>> '\\xc3\\x83\\xc2\\xa6\\xc3\\x83\\xc2\\xb8\\xc3\\x83\\xc2\\xa5'.decode('utf8')
u'\\xc3\\xa6\\xc3\\xb8\\xc3\\xa5'

Chuỗi này trong encoding utf8 tương đương với u'æøå'