初学py,学的是3.x版本,今天遇到base64编码问题

import base64encodestr = base64.b64encode('abcr34r344r'.encode('utf-8'))print(encodestr)

这是3.x的用法,因为3.x中字符都为unicode编码,而b64encode函数的参数为byte类型,所以必须先转码。

打印结果为
b'YWJjcjM0cjM0NHI='

结果和我们预想的有点区别,我们只想要获得YWJjcjM0cjM0NHI=,而字符串被b''包围了。
这时肯定有人说了,用正则取出来就好了。。。别急。。。
b 表示 byte的意思,我们只要再将byte转换回去就好了。。。源码如下

import base64encodestr = base64.b64encode('abcr34r344r'.encode('utf-8'))print(str(encodestr,'utf-8'))

打印结果为
YWJjcjM0cjM0NHI=