python3中的base64
Apr 17, 2012在python3中
base64只能用bytes型了
而一般的文件又都是utf8写的 很不方便
不知道基于什么考虑
所以
tmp=base64.encodestring(‘hello’) 是会报错的
应该是
tmp=base64.encodebytes(b’hello’)
这个encodebytes和encodestring现在是同义词
可能为了兼容以前(这兼容什么啊 肯定不兼容了 就是让方法没消失罢了)
官方建议用bytes 因为逻辑上只能加密bytes数据嘛
解密是
base64.decodebytes(b’aGVsbG8=n’)
会再解成 b’hello’
另外要注意 加密出来的tmp也是bytes型的啦
要是想要给别人或别的程序
还要再转换成字符串
bytes.decode(tmp)
这样才又是普通的字符串了
不知道为啥官方不让两个string方法输入输出都统一成u8的字串
那多方便…