python邮件附件乱码(python发送邮件,网页接收正常,Foxmail附件乱码)

1.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)#……

来吧,可劲地折腾吧。

邮件附件文件名乱码,邮件附件名称乱码,邮件附件出现乱码怎么解决

2.python显示乱码

多次被python的编码/乱码问题困扰,相信pythoner们都被困扰过,网上铺天盖地的资料太多也参差不齐,就整理了下。

本文从使用的角度系统总结了python编码相关的一些概念,将本文的例子玩一遍,基本上对python的编码问题就清楚了。首先明确几个概念:字节流:以utf8/gbk等编码编码的字节流。

unicode对象:python代码中,a=u'中国', 或者a='中国'.decode()的结果。terminal用于显示字符的编码:将一个用utf8/gbk编码的字节流通过terminal指定的编码,去查找对应的字符显示出来。

locale:linux下,Locale 是软件在运行时的语言环境, 它包括语言(Language), 地域 (Territory) 和字符集(Codeset)。一个locale的书写格式为: 语言[_地域[.字符集]]. 所以说呢,locale总是和一定的字符集相联系的。

比如:zh_CN.GB2312编码转换原则:unicode是”中介”,任何编码之间转换都需要先decode()到unicode。针对python,先把结论放在前面,三点:#coding:utf-8 #.py文件是什么编码就需要告诉python用什么编码去读取这个.py文件。

sys.stdout.encoding,默认就是locale的编码,print会用sys.stdout.encoding去encode()成字节流,交给terminal显示。所以locale需要与terminal一致,才能正确print打印出中文。

sys.setdefaultencoding('utf8'),用于指定str.encode() str.decode()的默认编码,默认是ascii。对编码字符串a,代码中可以直接写a.encode(“gbk”),但事实上内部自动先通过defaultencoding 去decode成unicode之后再encode()的。

str(xxx)应该也是用这个去编码的。'ascii' codec can't encode characters in position 7-8: ordinal not in range(128)print的时候出现这个错误一般可以使用这个方案去处理。

为了避免代码中到处都要去encode(“xxx”),还有可能不同的地方写得不一样带来不一致的情况,推荐使用这个:import sysreload(sys)sys.setdefaultencoding('utf8')例子1:在python中,unicode vs 字节流:字节流可以从unicode encode得到,unicode可以从utf8/gbk等编码的字节流decode得到。分析下面这段代码,终端/locale分别为不同编码的情况:#coding:utf-8 #由于.py文件是utf-8的,所以必须有这一句import sysimport localeimport osimport codecsreload(sys)print sys.getdefaultencoding() + " - sys.getdefaultencoding()"sys.setdefaultencoding('utf8') #影响encode()print sys.getdefaultencoding() + " - sys.getdefaultencoding()"print sys.stdout.encoding + " - sys.stdout.encoding:"#sys.stdout = codecs.getwriter('utf8')(sys.stdout) #影响printprint sys.stdout.encoding + " - sys.stdout.encoding:"u = u'中国'print u + " - u"a = '中国'print a + " - a"print a.decode('utf-8') + " - a.decode('utf-8')"print a.decode('utf-8').encode('gbk') + " - a.decode('utf-8').encode('gbk')"print a.decode('utf-8').encode('utf-8') + " - a.decode('utf-8').encode('utf-8')"print a.decode('utf-8').encode() + " - a.decode('utf-8').encode()"print (sys.stdout.encoding) + " - (sys.stdout.encoding)"print (sys.stdout.isatty())print (locale.getpreferredencoding())print (sys.getfilesystemencoding())—终端为UTF-8,locale为zh_CN.GBK—————–ascii - sys.getdefaultencoding()utf8 - sys.getdefaultencoding()GBK - sys.stdout.encoding:GBK - sys.stdout.encoding:?й? - u中国 - a?й? - a.decode('utf-8')?й? - a.decode('utf-8').encode('gbk')中国 - a.decode('utf-8').encode('utf-8')中国 - a.decode('utf-8').encode()GBK - (sys.stdout.encoding)TrueGBKutf-8—终端为UTF-8,locale为zh_CN.UTF-8—————–ascii - sys.getdefaultencoding()utf8 - sys.getdefaultencoding()UTF-8 - sys.stdout.encoding:UTF-8 - sys.stdout.encoding:中国 - u中国 - a中国 - a.decode('utf-8')?й? - a.decode('utf-8').encode('gbk')中国 - a.decode('utf-8').encode('utf-8')中国 - a.decode('utf-8').encode()UTF-8 - (sys.stdout.encoding)TrueUTF-8utf-8—终端为GBK,locale为zh_CN.GBK—————–ascii - sys.getdefaultencoding()utf8 - sys.getdefaultencoding()GBK - sys.stdout.encoding:GBK - sys.stdout.encoding:中国 - u涓???? - a中国 - a.decode('utf-8')中国 - a.decode('utf-8').encode('gbk')涓???? - a.decode('utf-8').encode('utf-8')涓???? - a.decode('utf-8').encode()GBK - (sys.stdout.encoding)TrueGBKutf-8—终端为GBK,locale为zh_CN.UTF-8—————–ascii - sys.getdefaultencoding()utf8 - sys.getdefaultencoding()UTF-8 - sys.stdout.encoding:UTF-8 - sys.stdout.encoding:涓???? - u涓???? - a涓???? - a.decode('utf-8')中国 - a.decode('utf-8').encode('gbk')涓???? - a.decode('utf-8').encode('utf-8')涓???? - a.decode('utf-8').encode()UTF-8 - (sys.stdout.encoding)TrueUTF-8utf-8例子1总结,对print而言:unicode的数据如。

乱码,邮件附件,python

3.python显示乱码

多次被python的编码/乱码问题困扰,相信pythoner们都被困扰过,网上铺天盖地的资料太多也参差不齐,就整理了下。

本文从使用的角度系统总结了python编码相关的一些概念,将本文的例子玩一遍,基本上对python的编码问题就清楚了。首先明确几个概念:字节流:以utf8/gbk等编码编码的字节流。

unicode对象:python代码中,a=u'中国', 或者a='中国'.decode()的结果。terminal用于显示字符的编码:将一个用utf8/gbk编码的字节流通过terminal指定的编码,去查找对应的字符显示出来。

locale:linux下,Locale 是软件在运行时的语言环境, 它包括语言(Language), 地域 (Territory) 和字符集(Codeset)。一个locale的书写格式为: 语言[_地域[.字符集]]. 所以说呢,locale总是和一定的字符集相联系的。

比如:zh_CN.GB2312 编码转换原则:unicode是”中介”,任何编码之间转换都需要先decode()到unicode。针对python,先把结论放在前面,三点:#coding:utf-8 #.py文件是什么编码就需要告诉python用什么编码去读取这个.py文件。

sys.stdout.encoding,默认就是locale的编码,print会用sys.stdout.encoding去encode()成字节流,交给terminal显示。所以locale需要与terminal一致,才能正确print打印出中文。

sys.setdefaultencoding('utf8'),用于指定str.encode() str.decode()的默认编码,默认是ascii。对编码字符串a,代码中可以直接写a.encode(“gbk”),但事实上内部自动先通过defaultencoding 去decode成unicode之后再encode()的。

str(xxx)应该也是用这个去编码的。'ascii' codec can't encode characters in position 7-8: ordinal not in range(128)print的时候出现这个错误一般可以使用这个方案去处理。

为了避免代码中到处都要去encode(“xxx”),还有可能不同的地方写得不一样带来不一致的情况,推荐使用这个:import sys reload(sys) sys.setdefaultencoding('utf8') 例子1:在python中,unicode vs 字节流:字节流可以从unicode encode得到,unicode可以从utf8/gbk等编码的字节流decode得到。分析下面这段代码,终端/locale分别为不同编码的情况:#coding:utf-8 #由于.py文件是utf-8的,所以必须有这一句 import sys import locale import os import codecs reload(sys) print sys.getdefaultencoding() + " - sys.getdefaultencoding()" sys.setdefaultencoding('utf8') #影响encode() print sys.getdefaultencoding() + " - sys.getdefaultencoding()" print sys.stdout.encoding + " - sys.stdout.encoding:"#sys.stdout = codecs.getwriter('utf8')(sys.stdout) #影响print print sys.stdout.encoding + " - sys.stdout.encoding:" u = u'中国' print u + " - u" a = '中国' print a + " - a" print a.decode('utf-8') + " - a.decode('utf-8')" print a.decode('utf-8').encode('gbk') + " - a.decode('utf-8').encode('gbk')" print a.decode('utf-8').encode('utf-8') + " - a.decode('utf-8').encode('utf-8')" print a.decode('utf-8').encode() + " - a.decode('utf-8').encode()" print (sys.stdout.encoding) + " - (sys.stdout.encoding)" print (sys.stdout.isatty()) print (locale.getpreferredencoding()) print (sys.getfilesystemencoding()) —终端为UTF-8,locale为zh_CN.GBK—————– ascii - sys.getdefaultencoding() utf8 - sys.getdefaultencoding() GBK - sys.stdout.encoding:GBK - sys.stdout.encoding:?й? - u 中国 - a?й? - a.decode('utf-8')?й? - a.decode('utf-8').encode('gbk') 中国 - a.decode('utf-8').encode('utf-8') 中国 - a.decode('utf-8').encode() GBK - (sys.stdout.encoding) True GBK utf-8 —终端为UTF-8,locale为zh_CN.UTF-8—————– ascii - sys.getdefaultencoding() utf8 - sys.getdefaultencoding() UTF-8 - sys.stdout.encoding:UTF-8 - sys.stdout.encoding:中国 - u 中国 - a 中国 - a.decode('utf-8')?й? - a.decode('utf-8').encode('gbk') 中国 - a.decode('utf-8').encode('utf-8') 中国 - a.decode('utf-8').encode() UTF-8 - (sys.stdout.encoding) True UTF-8 utf-8 —终端为GBK,locale为zh_CN.GBK—————– ascii - sys.getdefaultencoding() utf8 - sys.getdefaultencoding() GBK - sys.stdout.encoding:GBK - sys.stdout.encoding:中国 - u 涓???? - a 中国 - a.decode('utf-8') 中国 - a.decode('utf-8').encode('gbk') 涓???? - a.decode('utf-8').encode('utf-8') 涓???? - a.decode('utf-8').encode() GBK - (sys.stdout.encoding) True GBK utf-8 —终端为GBK,locale为zh_CN.UTF-8—————– ascii - sys.getdefaultencoding() utf8 - sys.getdefaultencoding() UTF-8 - sys.stdout.encoding:UTF-8 - sys.stdout.encoding:涓???? - u 涓???? - a 涓???? - a.decode('utf-8') 中国 - a.decode('utf-8').encode('gbk') 涓???? - a.decode('utf-8').encode('utf-8') 涓???? - a.decode('utf-8').encode() UTF-8 - (sys.stdout.encoding) True UTF-8 utf-8 例子1总结,对print而言:unicode的数据如果要显示正常,必须终端与locale一致。

sys.stdout.encoding这个值应该来自locale,print会以sys.stdout.encoding去encode并输出到字节流。encode为终端编码的字节流就能显示正常,无论locale是啥。

最。

python邮件附件乱码

转载请注明出处编程代码网 » python邮件附件乱码(python发送邮件,网页接收正常,Foxmail附件乱码)

资讯

python库高性能(python与php哪个性能高)

阅读(41)

本文主要为您介绍python库高性能,内容包括python与php哪个性能高,python高级特性知多少,Python几种主流框架比较。语法:PHP 的语法看起来就像没有经过精心设计一样,很随意。有的语法看似很方便(用点来连接字符串), 但是却为之后扩展造成了很多麻

资讯

python数据库编码(python3.6cx)

阅读(43)

本文主要为您介绍python数据库编码,内容包括如何用python处理数据库(作业),求完整编码TUT,Python从数据库返回的值编码格式怎么修改?,python读取数据库为什么会出现乱码。我说下我遇到的情况数据库字符集是 ZHS16GBK错误的情况是UnicodeDec

资讯

python美国国旗(美国的国旗是什么样的)

阅读(27)

本文主要为您介绍python美国国旗,内容包括美国的国旗是什么样的,美国国旗,多少个星?,美国国旗一共变化过几次?。美利坚合众国的国旗旗面由13道红白相间的宽条构成,左上角还有一个包含了50颗白色小五角星的蓝色长方形。50颗小星代表了美国的5

资讯

python类global(请问这个pythonglobal语句是什么意思?)

阅读(31)

本文主要为您介绍python类global,内容包括python中global的作用是什么?,请问这个pythonglobal语句是什么意思?,Pythonglobal定义全局变量,解析Python函数变量如何使用。PenitentSin回答的挺。只是那个字典的key值可以这样理解globals()["a%d

资讯

python开发ios应用程序(Python有可能可以开发iOS原生应用吗)

阅读(38)

本文主要为您介绍python开发ios应用程序,内容包括Python有可能可以开发iOS原生应用吗,用QStackedWidget,怎么实现窗口切换,做苹果APP开发需要准备什么?。Docker和云原生应用的12要素 随着Docker容器的兴起,云原生应用越来越流行。事实上,云原

资讯

python简易爬虫(爬虫是什么,Python开发简单爬虫教程)

阅读(51)

本文主要为您介绍python简易爬虫,内容包括如何用Python编写一个简单的爬虫,爬虫是什么,Python开发简单爬虫教程,怎么样在Python中制作简单的网页爬虫。Python简单易学、免费开源、高层语言、可移植性超强、可扩展性、面向对象、可嵌入型、

资讯

python对象self(python中self是什么意思?)

阅读(31)

本文主要为您介绍python对象self,内容包括python中self是什么意思?,python中self是什么,python中self是什么。题主可以学习一下面向对象编程的一般知识。概括的说,主流的支持面向对象编程的语言(Java, python等)关于“类”的定义是很接近的。

资讯

python客户端编程(python网络编程tcp客户端怎么写)

阅读(39)

本文主要为您介绍python客户端编程,内容包括python做客户端程序适合吗,python网络编程tcp客户端怎么写,Python中用socket编写服务器和客户端。大多数连接都是可靠的TCP连接。创建TCP连接时,主动发起连接的叫客户端,被动响应连接的叫服务器。

资讯

python翻译api接口(如何用python调用百度翻译)

阅读(34)

本文主要为您介绍python翻译api接口,内容包括如何应用bing翻译apipython,如何用python调用百度翻译,python怎么提供api接口。#/usr/bin/env python#coding=utf8import httplibimport md5import urlli

资讯

python附件中文(python发送邮件,附件中文命名,怎么破)

阅读(33)

本文主要为您介绍python附件中文,内容包括python发送邮件,附件中文命名,怎么破,python发送邮件,附件中文命名,怎么破,python如何打开中文文件文件名是中文。不知道你是不是用的smtp来发的,我的发中文的附件没问题 #coding=utf-8Created on 2

资讯

python微信开发文档(如何用python给微信发信息)

阅读(29)

本文主要为您介绍python微信开发文档,内容包括如何使用Python开发微信小程序,python能不能做微信开发,python能不能做微信开发。基于文本文档(Markdown) 设想好需要的基本需要的表、字段、类型;使用 Rails Migration 随着功能的开发逐步创建表

资讯

python和php知乎(知乎为什么用Python,而不用PHP)

阅读(31)

本文主要为您介绍python和php知乎,内容包括知乎为什么用Python,而不用PHP,php和python哪个更有前途在国内的未来?,PHP和Python哪个更有前途。Quora 上也有人问为什么 Quora 选择 Python(原文连接)两个员工(都来自facebook)的意思大致如下:有很多

资讯

python3单例(怎么理解python单例模式)

阅读(27)

本文主要为您介绍python3单例,内容包括Python中的单例模式的几种实现方式的及优化,怎么理解python单例模式,Python中的单例模式的几种实现方式的及优化。在聊这之前我们首先要明确的是,单例模式在实际中的意义以及在python中具有实现的价值?

资讯

python库高性能(python与php哪个性能高)

阅读(41)

本文主要为您介绍python库高性能,内容包括python与php哪个性能高,python高级特性知多少,Python几种主流框架比较。语法:PHP 的语法看起来就像没有经过精心设计一样,很随意。有的语法看似很方便(用点来连接字符串), 但是却为之后扩展造成了很多麻

资讯

python数据库编码(python3.6cx)

阅读(43)

本文主要为您介绍python数据库编码,内容包括如何用python处理数据库(作业),求完整编码TUT,Python从数据库返回的值编码格式怎么修改?,python读取数据库为什么会出现乱码。我说下我遇到的情况数据库字符集是 ZHS16GBK错误的情况是UnicodeDec

资讯

python美国国旗(美国的国旗是什么样的)

阅读(27)

本文主要为您介绍python美国国旗,内容包括美国的国旗是什么样的,美国国旗,多少个星?,美国国旗一共变化过几次?。美利坚合众国的国旗旗面由13道红白相间的宽条构成,左上角还有一个包含了50颗白色小五角星的蓝色长方形。50颗小星代表了美国的5

资讯

python类global(请问这个pythonglobal语句是什么意思?)

阅读(31)

本文主要为您介绍python类global,内容包括python中global的作用是什么?,请问这个pythonglobal语句是什么意思?,Pythonglobal定义全局变量,解析Python函数变量如何使用。PenitentSin回答的挺。只是那个字典的key值可以这样理解globals()["a%d

资讯

python开发ios应用程序(Python有可能可以开发iOS原生应用吗)

阅读(38)

本文主要为您介绍python开发ios应用程序,内容包括Python有可能可以开发iOS原生应用吗,用QStackedWidget,怎么实现窗口切换,做苹果APP开发需要准备什么?。Docker和云原生应用的12要素 随着Docker容器的兴起,云原生应用越来越流行。事实上,云原

资讯

python简易爬虫(爬虫是什么,Python开发简单爬虫教程)

阅读(51)

本文主要为您介绍python简易爬虫,内容包括如何用Python编写一个简单的爬虫,爬虫是什么,Python开发简单爬虫教程,怎么样在Python中制作简单的网页爬虫。Python简单易学、免费开源、高层语言、可移植性超强、可扩展性、面向对象、可嵌入型、