python3 中bytes与str类型

python3最重要的新特性之一就是对字符串和二进制流做了明确的区分。文本总是unicode,由str类型表示用于显示。二进制则是由bytes类型表示,用于存储和传输。bytes是byte的序列,而str是unicode的序列。Python3不会以任意隐式的方式混用str和bytes,不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然)。也不能将字符串传入参数为字节流的函数(反之亦然)。

str与bytes之间的转换关系:str-->encode()-->bytes--->decode()--->str

转换方式1:encode() ,decode()

使用encode() decode()转换数据类型,时编码以解码时必须使用相同的字符编码,否则出现乱码错误。

转换方式2:bytes()  , str()

 不同编码类型的转换

文本默认编码类型为Unicode,各种编码类型的转换必须先解码decode()为Unicode,然后再通过encode()编码转换为所需类型编码。通过encode() decode()在各种编码如utf-8 gbk等之间进行相互转换。常见乱码错误,多是由于打开解码方式与文件编码方式不同造成的。

尚存疑问!!!

http://blog.csdn.net/xfyangle/article/details/60969522

原文地址:https://www.cnblogs.com/ghming/p/8449613.html