bytes和str的区别 1.英文 b'alex'的表现形式与str没什么两样 2.中文 b'\xe4\xb8\xad'这是一个汉字在utf-8的bytes表现形式 3.中文 b'\xce\xd2'这是一个汉字在gbk的bytes 的表现形式 bytes与字符串的相互转换 s = '我' s1 = s.encode('gbk') #针对中文str '我' 以GBK 进行编码 print(s1) # '我' GBK 是两个bytes,所以编码为 b'\xce\xd2' s2 = s1.decode…
bytes 和 str 的区别: bytes 存储字节( 通常值在 range(0, 256)) str 存储unicode字符( 通常值在0~65535) bytes 与 str 的转换 编码(encode) str ----------> bytes b = s.encode(encoding='utf-8') 解码(decode) bytes ----------> str s = b.decode(encoding='utf-8')…
Python 有两种类型可以表示字符序列 bytes:实例包含的是原始数据,即 8 位的无符号值(通常按照 ASCII 编码标准来显示) str:实例包含的是 Unicode 码点(code point,也叫作代码点),这些码点与人类语言之中的文本字符相对应 a = b'h\x6511o' print(list(a)) print(a) a = 'a\\u300 propos' print(list(a)) print(a) # 输出结果 [104, 101, 49, 49, 111] b'he…
经过一上午的查找资料.大概理清楚了bytes类型和str类型的区别. bytes类型和str类型在呈现形式有相同之处,如果你print一个bytes类型的变量,会打印一个用b开头,用单引号括起来的序列.比如: >>> c = b'\x80abc' >>> type(c) bytes 我们看到c = b'\x80abc'表示的就是一个bytes类型.是不是和字符串很像?只是前面多出来一个b.那b'\x80abc的含义是什么呢?\x80即16进制的两位数,代表十进制的0-2…
最近把一段py2的代码转换到py3的代码,结果运行到向socket中写数据的代码部分出现了'str' does not support the buffer interface这样一个错误. 一番搜索之后,发现py3里是严格区分了str和bytes的.怎么理解str和bytes呢?你可以认为str是一段文本,比如“abcd#%$^*&”什么的,而bytes呢,是二进制的一堆0,1的比特而已.看下面的图: 可以看到str的类型是class 'str',而str.encode()以后类型是class…
1.python中bytes和str Python3 最重要的新特性大概要算是对文本(text)和二进制数据(binary data)作了更为清晰的区分 (1)Python 3.0使用文本和(二进制)数据的概念而不是Unicode字符串和8位字符串.所有文本都是Unicode; 但编码的 Unicode表示为二进制数据.用于保存文本str的类型是用于保存数据的类型 bytes.与2.x情况的最大区别在于,任何在Python 3.0中混合文本和数据的尝试都会提高 TypeError,而如果你要在P…
参考文章:Python 3的bytes/str之别 len()函数计算的是str的字符数,如果换成bytes,len()函数就计算字节数 >>> len('ABC') 3 >>> len('中文') 2 >>> len(b'ABC') 3 >>> len(b'\xe4\xb8\xad\xe6\x96\x87') 6 >>> len('中文'.encode('utf-8')) 6…
本博转载自:Chown-Jane-Y的浅析Python3中的bytes和str类型 Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和bytes,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字节流的函数(反之亦然). 下面让我们深入分析一下二者的区别和联系. 编码发展的历史 在谈bytes和str之前,需…
Python和C的字符串 在Python 3 中,bytes单独作为一个类型,不再和str类型混在一起.关于字符串和字节,我想先回顾下C/C++ 在C/C++中,字符串是由char数组构成,每个元素是一个Char数据结构,数组的结尾是'\0'空字符. char是默认的unsigned的整型数据, 用于存储英文字符和小的整数(取值是0-255). ASCII是char的子集,因此char很好存储英文字母, 满足存储英文字符的需求. 在C/C++中,int是整型的数据结构.而Python的int被设…
之前学习bytes转换str的时候,场景比较简单,这次是python中使用subprocess模块输出Linux下的执行命令的结果,默认是bytes类型,因此输出的结果并不是我们想要的,bytes的输出结果如下所示: bytes类型的特征就是在输出的结果前有一个“b”字符.并且byets类型中的转义字符不能正常显示出来.针对这些缺点我们需要对其进行转换,例如: 核心代码就是:“ print("out:",str(popen.stdout.read(),encoding='utf-8')…