Như tiêu đề, có một lý do không sử dụng str() để bỏ chuỗi unicode thành str ??Python sự khác biệt giữa str (u'a ') và u'a'.encode (' utf-8 ') là gì
>>> str(u'a')
'a'
>>> str(u'a').__class__
<type 'str'>
>>> u'a'.encode('utf-8')
'a'
>>> u'a'.encode('utf-8').__class__
<type 'str'>
>>> u'a'.encode().__class__
<type 'str'>
UPDATE: cảm ơn cho câu trả lời, cũng không biết nếu tôi có thể tạo một chuỗi sử dụng ký tự đặc biệt nó sẽ tự động chuyển đổi sang utf-8
>>> a = '€'
>>> a.__class__
<type 'str'>
>>> a
'\xe2\x82\xac'
Cũng là một đối tượng Unicode trong python 3