#注意当前脚本是python 3.6.x #!/usr/bin/python # -*- coding: utf-8 -*- import urllib,sys,re import struct #读取当前编码 print (sys.getdefaultencoding()) qrcode="xxxxxxxxxxxxxxxxxxxxxxxxxxx" #php urlencode 同 python 的urlencode 差别是 #python的urldecode处理有两种 urllib.parse.unquote_plus 和 urllib.parse.unquote #差别是 urllib.parse.unquote_plus 会将 "+" 调整为 " ".这是和php urldecode相同的方式 #但是普通urllib.parse.unquote处理会将内容进行编码,导致结果和要的冲突.文件本身已是二进制,直接读,写入就是文件,经过编码,文件就出问题 qrcode=qrcode.replace("+"," ") #比较 plus 后的处理结果是否相同 print (urllib.parse.unquote(qrcode)==urllib.parse.unquote_plus(qrcode)) #原内容长度 print (len(qrcode)) #获取二进制内容长度,用于判断是否有漏缺 print (len(urllib.parse.unquote_to_bytes(qrcode))) #将处理后的内容写入文件 file=open("test.png","wb") file.write(urllib.parse.unquote_to_bytes(qrcode)) file.close();