Python之base64编码与解码转换


刚刚突然看到有个代码面有base64,想到有很多情况下需要进行转换,很多不可见的东西可以用base64进行转换成可见的字符,比如图片转字符,故以此为目的,写下此篇。

文字

  • 因为3.x中字符都为unicode编码,而b64encode编码转换出来为byte类型,所以,须用str()转换,否则将转换出多于字符,解码时由于unicode编码,会出现xe5xad类,故,utf-8转码,对比代码如下:
import base64

i = "字符串"
i_en = base64.b64encode(i.encode("utf-8")) #en为编码
print(i_en)
print(str(i_en,"utf-8")) #str转换为字符串
i_de = base64.b64decode(i_en) #de为解码
print(i_de)
print(str(i_de,"utf-8"))

打印结果:

b'5a2X56ym5Liy'
5a2X56ym5Liy
b'\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2'
字符串

图片

  • 图片编码解码,可将jpg格式转成base64后解码成png格式,我也不知道为啥,反正就解码了。
import base64
with open("bizhi.jpg","rb") as f: #转为二进制
    base64_data = base64.b64encode(f.read()) #加密
    print(str(base64_data,"utf-8"))
    file=open('1.txt','wt') #写成文本格式
    file.write(str(base64_data,"utf-8"))
  #  file.write(base64_data) #错误输出
    file.close()
with open("1.txt","r") as f:
    imgdata = base64.b64decode(f.read())
    file_de = open("1.jpg","wb")
    file_de.write(imgdata)
    file_de.close()

声明:芫荽 Blog|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Python之base64编码与解码转换


天若有情天亦老,人间正道是沧桑!