Python如何实现Base64文本解码?解码功能运行异常报错如何解决?
问题根因
- 解码后输出乱码:
base64.decodebytes()返回的是bytes类型对象,直接打印会输出带b前缀的十六进制转义内容,没有转为UTF-8字符串做可读性处理 - 得到非预期的
b'm!\x95\xb1\xb1\xbc'结果:输入的待解码内容和Hello对应的标准Base64编码不匹配,Hello对应的正确Base64编码为SGVsbG8= - 之前的字符串类型报错:
base64.decodebytes()要求传入bytes类型参数,你当前代码中askdecode = askdecode.encode()这一行已经解决了该问题,现在不会再触发该报错 - 之前功能变成编码:大概率是调用函数时误执行了
encode()而非decode()
修复后完整代码
import base64 def encode(): askencode = input("输入需要编码的内容:") askencode = askencode.encode("utf-8") base64_info_encode = base64.b64encode(askencode) print("编码后的bytes内容:", base64_info_encode) print("编码后的字符串内容:", base64_info_encode.decode("utf-8")) def decode(): askdecode = input("输入需要解码的内容:") askdecode = askdecode.encode() base64_info_decode = base64.decodebytes(askdecode) # 新增bytes转字符串逻辑实现可读输出 print("解码后的内容:", base64_info_decode.decode("utf-8"))
测试验证
运行decode()函数,输入SGVsbG8=,即可得到输出解码后的内容: Hello
内容的提问来源于stack exchange,提问作者Maniac
相关产品推荐
相关产品推荐

