在使用json传输图片时,需要做格式转换。
图片是以二进制的数据形式存储在数据库,如果直接用json包装二进制数据时,会报错。
所以需要将二进制数据使用base64编码后再进行json传输。
encode和decode是字符串到二进制的编码和解码。
而base64的编码是在二进制的基础上,即base64格式的数据解码为二进制数据。
个人理解base64是作为一种在现有编码的基础上再次进行加密的编码。
Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。
编码 b64encode
解码 b64decode
import base64
st = 'hello world!'.encode()#默认以utf8编码
res = base64.b64encode(st) # 使用base64编码
print(res.decode())#默认以utf8解码
res = base64.b64decode(res)
print(res.decode())#默认以utf8解码
结果
aGVsbG8gd29ybGQh
hello world!
第一次解码
aGVsbG8gd29ybGQh
此时是 “hello world” 在被base64编码的基础上进行的解码 , 类似于加密后数据进行utf-8解码 。
第二次解码
hello world!
b64decode 为解码 ,相当于解密。 所以可以打印 hello world!