当前位置:首页 » 编程语言 » python邮件乱码问题

python邮件乱码问题

发布时间: 2022-07-20 07:36:08

‘壹’ python中文乱码解决

windows下的文件路径,cmd窗口等默认编码都是gbk
但在windows下编写python程序的时候,我们一般采用的编码是utf-8
二者不一致是导致乱码的根本原因!
在pycharm下,为了中文不乱码,那么需要注意一下几个方面:
一、每一个源程序文件头部,需要加上
#-*-coding:utf-8;-*-
这样就没有乱码了

‘贰’ python 发邮件乱码的几种解决方法

打开python的Lib文件夹下的mimetypes.py文件,找到大概256行的

‘default_encoding=sys.getdefaultencoding()’。

在这行前面添加三行,并且注释4行代码

#try:
#ctype=ctype.encode(default_encoding)#omitin3.x!
#exceptUnicodeEncodeError:
#pass
else:
yieldctype
i+=1

ifsys.getdefaultencoding()!='gbk':
reload(sys)
sys.setdefaultencoding('gbk')
default_encoding=sys.getdefaultencoding()

‘叁’ Python中中文乱码问题

a ='哈哈'
b = a.encode('utf-8')
以上你的代码是UTF8编码吧,a本来就是UTF8编码,你在给它编码干嘛,encode是编码,decode是解码,你不报错没天理。

a = u'哈哈'
b = a.encode('utf-8')
a是U编码类型也就是你上一个没加U的哈哈的解码,它肯定不会保存!

‘肆’ 用Python发邮件的时候,附件文件名如果是中文,接受到的总是乱码,如何解决谢大神解答!

'attachment; filename="中文.txt"'.decode('utf-8')

在每个python 的中文字符后面加.decode('utf-8')看看?

‘伍’ python 中文乱码问题

记事本是用utf-8保存你下载了东西的。你下载下来的不是utf-8,保存下来中文当然就乱码了。而gbk和utf-8里英文的编码值都一样,所以不受影响。

一个方法是你留意下目标页面的charset 和 contentType,另一个方法是你复制一个目标页面的字,放cmd里看它的编码长度,以此来判断它的原来编码。

‘陆’ Python为什么一运行就是乱码

可能是编码问题,开头加上coding:utf-8试试。

‘柒’ python异常乱码如何解决

如果页面是GB18030编码,而数据库是GBK编码,一般来说是不用转换的。GB18030是GBK的超级。GB18030本身兼容GBK,而GB18030中的部分字符GBK中是没有的。将GB18030字符写入GBK的数据库,只会丢失部分字符而已。一般网页上不会出现罕见的字符,所以这种情况是无需处理的。


所以,请仔细核对页面和数据库的编码。


即使你提供的页面、数据库编码是正确的,而且一定要转换,也应该这样做:

s='GB18030字符串'
s=s.decode('GB18030')#转化为unicode
s=s.encode('GBK')#转化为GBK

‘捌’ python发送邮件,网页接收正常,Foxmail附件乱码

应该是编码的问题……说不定发送英文或者数字的能够正常呢?
好吧,其实我也不太清楚
不过我关注的不是这个,而是放在文件夹下的方法太蛋疼了。
弄个拖动的吧,这样就可以放在%userprofile%\AppData\Roaming\Microsoft\Windows\SendTo文件夹下,直接“发送到”了,getfile用于接收文件路径。
try:
#得到拖动的文件路径
getfile = sys.argv[1]except Exception, e:
#用正常方式打开
getfile = raw_input('输入完整路径获取附件(拖动文件到控制台窗口):')filename = os.path.basename(getfile) #从路径获取文件名
对了,别忘记把.py后缀改成.pyw,消除黑色窗口……
还有弄个
import ctypes#……#结束后弹出提示对话框text = filename + '\n' + 'Successfully sent to ' + msg['to']ctypes.windll.user32.MessageBoxA(0, text, '', 0)#……
来吧,可劲地折腾吧。

‘玖’ python 乱码问题

解决方法:
1.直接使用 u'是' 形式,指明以unicode编码,解码方式会以顶部 #coding定义的编码方式,如果不写,以操作系统当前编码方法,建议写上#coding,因为要让操作系统编码和源文件编码经常会不一样。推荐使用这种方式
2.输出时指定解码方法 print '是'.decode("utf8") ,必须和保存的编码一致,忽略#coding的定义
3.将#coding 和保存编码改为和操作系统一样的编码,就可以直接print '是' 正常输出,也不推荐,因为需要事先知道操作系统编码,复制到其他电脑上,操作系统编码不一样就会出错
#coding=gbk
print u'是' #方法1
print '是'.decode("gbk") #方法2
print '是' #方法3

注意:
#coding指明的编码必须和保存的编码一样,不然1,3方法都会产生错误,原因也是保存编码和读取编码不一致。一般IDE能够自动根据#coding保存文件

‘拾’ python 收取邮件都是乱码。

一般邮件在传输的时候都会被编码,图中的是base64编码的特征,这类编码是可逆的,只需要进行base64解码即可,python有个base64模块,可以用来编码和解码。

热点内容
qq登录在哪个文件夹 发布:2025-02-01 01:57:59 浏览:624
如何加入安卓代理 发布:2025-02-01 01:51:40 浏览:2
我的世界手游服务器刷钻石教程 发布:2025-02-01 01:48:13 浏览:773
sqlifthen男女 发布:2025-02-01 01:44:59 浏览:690
幻灵和安卓哪个互通 发布:2025-02-01 01:43:33 浏览:648
电脑配置够但为什么打lol掉帧 发布:2025-02-01 01:37:08 浏览:316
21款朗逸哪个配置比较划算 发布:2025-02-01 01:35:32 浏览:976
建筑动画片脚本 发布:2025-02-01 01:35:21 浏览:469
管家婆如何用阿里云服务器 发布:2025-02-01 01:29:09 浏览:649
解压耳放 发布:2025-02-01 01:20:18 浏览:176