Python中的字符串和字节字符串有什么区别?

字符串是字符序列;这些是一个抽象概念,不能直接存储在磁盘上。字节字符串是字节序列-可以存储在磁盘上的东西。它们之间的映射是一种编码-其中有很多(并且无限可能)-并且您需要知道在特定情况下哪种适用才能进行转换,因为不同的编码可能会映射相同的字节到另一个字符串。例如,相同的字节字符串可以用2种不同的编码表示2个不同的字符串。

例如

>>> 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ς'

一旦知道要使用哪种编码,就可以使用字节字符串的.decode()方法从中获取正确的字符串。字符串的.encode()方法采用相反的方式,并将字符串编码为字节字符串。