Tôi vấp trên đoạn này trong Django tutorial:Unicode vs UTF-8 nhầm lẫn trong Python/Django?
mô hình Django có một str() phương pháp mặc định mà các cuộc gọi unicode() và chuyển kết quả đến một bytestring UTF-8. Điều này có nghĩa là unicode (p) sẽ trả về một chuỗi Unicode, và str (p) sẽ trả về một chuỗi bình thường, với các ký tự được mã hóa dưới dạng UTF-8.
Bây giờ, tôi bị nhầm lẫn vì afaik Unicode không phải là bất kỳ biểu diễn cụ thể nào, vậy chuỗi Unicode là gì trong Python? Điều đó có nghĩa là UCS-2? Googling đã bật lên this "Python Unicode Tutorial" có nội dung rõ ràng là
Unicode là mã hóa hai byte bao gồm tất cả các hệ thống chữ viết thông thường trên thế giới.
sai hoặc sai? Tôi đã bị nhầm lẫn nhiều lần bởi các vấn đề về bộ ký tự và mã hóa, nhưng ở đây tôi khá chắc chắn rằng tài liệu tôi đang đọc bị nhầm lẫn. Có ai biết những gì đang xảy ra trong Python khi nó mang lại cho tôi một "chuỗi Unicode"?
Xin vui lòng, mọi người, bỏ phiếu câu trả lời này, ngay cả khi lựa chọn "câu trả lời" khác vẫn được chọn. – tzot
[nhún vai] cả hai đều chính xác; đó là hàm ý của ‘len ('ΤΖΩΤΖΙΟΥ') == 8’ thực sự xác định chuỗi Unicode * là gì *, tôi cho là vậy. – bobince
Tôi không đồng ý; Tôi đọc câu hỏi, và nó nói "chuỗi Unicode trong Python là gì". Câu trả lời được chọn có vẻ giống như một mạng lưới các câu ngẫu nhiên, trong khi câu trả lời của bạn dường như còn quan trọng hơn nhiều; tuy nhiên, đây là một vấn đề mà tôi sẽ không tiếp tục theo đuổi. Chúc mừng :) – tzot