python bytes和bytearray、编码和解码
str是字符数据,bytes和bytearray是字节数据。它们都是序列,可以进行迭代遍历。str和bytes是不可变序列,bytearray是可变序列,可以原处修改字节。 bytes和bytearray都能使用str类型的通用函数,比如find()、replace()、islower()等,不能用的是str的格式化操作。所以,如有需要,参考 字符串(string)方法整理 来获取这些函数的使用方法。 str str将各个字符组合在一起,以一种不可变序列进行存储 。但是在底层它还是一个个的二进制数,是由一个个的字节组成的(也就是byte),只不过python根据指定的字符集编码"强行"将字节序列显示为字符。 python 3.x中默认str是unicode格式编码的,例如UTF-8字符集。 >>> import sys >>> sys.getdefaultencoding() 'utf-8' unicode编码的str,意味着能够直接存储除ascii码外的很多字符,比如中文,比如欧洲的重音符号。还意味着可以将一个unicode字符存储为多个字节,并将连续多个的字节翻译成单个对应的字符。 >>> a = "我" >>> a '我' >>> ord(a) 25105 >>> a.encode() b'\xe6\x88\x91' 根据指定字符集