python零散知识记录(五)base64

上一篇 / 下一篇  2018-03-28 09:42:16 / 个人分类:learning

最近在用python模拟发送邮件,网上随便一搜就有好多例子,直接扒下来就用,方便。但是也遇到了一些问题。
主要集中同样的代码,不同类型邮箱在收件后表现不一样:
1、qq邮箱是ok的
2、网易邮箱在收件人、发件人、附件含有中文的时候会有异常
3、我本地的outlook,同样存在网易邮箱的问题,附件还总是显示为ATTXXXX.txt(dat)等等。

在寻找解决办法的过程中,有查找一些关于unicode,utf-8,base64编码的一些资料,只看懂了一些皮毛。
unicode是一个字符集,utf-8是它的一种实现方式。还有utf-16,utf-32
decode,是将其他编码的字符串转换成unicode编码
encode,是将unicode编码转换成其他编码的字符串(虽然看着简单,但我每次都记不住)
注:python3里‘str’是不能直接用decode的

base64,一般在邮件中使用,python有这个模块,使用的时候直接导入。python2和python3中使用方法略有不同,网上搜的有不少是python2的用法

python2:
import base64
s=“我是字符串”
a=base64.b64encode(s)#编码
b=base64.b64decode(a)#解码,打印出来的结果就是s
这样应该能直接出结果

python3:
import base64

s=“我是字符串”
a=base64.b64encode(s.encode('utf-8'))#编码,但bytes-like is required,not‘str’
b=base64.b64decode(a)#解码,打印出来是二进制数,好像是ascii码
c=b.decode() #c打印出来结果才是s

关于编码解码的还得好好看看,容易混




TAG:

 

评分:0

我来说两句

我的栏目

日历

« 2024-03-28  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 8599
  • 日志数: 12
  • 建立时间: 2008-04-23
  • 更新时间: 2020-11-04

RSS订阅

Open Toolbar