Python3.2邮件解码
摘要:Python3.2中字符串全是unicode,接收邮件retr返回的信息message是bytes列表。测试过程中发现Python3.2 接收邮件后的处理和Python 2.X差别很大,原来可以正确解码的邮件都要另行处理,包括mail.as_string()和message_from_string()和message_from_file()都有时会出问题。而新引入的message_from_bytes()则要好用得多。但考虑到国内邮件的复杂情况(哇,真的好复杂啊,主要是邮件的编码,规范的和不规范的),邮件解码经常出现乱码问题。chardet给出的结果也有问题,比如说邮件中有未编码处理的英文和中
阅读全文
posted @
2011-03-18 15:58
garfieldtom
阅读(1096)
推荐(0) 编辑
Python编码问题
摘要:从Python2.7升级到Python 3.2,发现邮件接收也改变了.hdr,message,octet=popClient.retr(1)原来返回的message是字符串列表,现在返回的是bytes列表.如果想以字符串来处理的话,需要对bytes进行解码,可邮件的编码实在是太多了,测试发现:http://chardet.feedparser.org/上的chardet非常好用:import chardetcd=chardet.detect(astr)然后会返回一个字典:{'encoding': 'GB2312', 'confidence': 0
阅读全文
posted @
2011-03-17 13:56
garfieldtom
阅读(368)
推荐(0) 编辑
Python 3.2 中adodbapi的问题
摘要:一直在使用Python 2.X,最近想测试一下最新的Python 3.2.下载了ActivePython 3.2,PyQt4,Eric5,安装配置完环境.因为原系统中使用adodbapi连接MSSQL 数据库,所以首先测试一下adodbapi.在ActivePython 3.2中,默认安装了adodbapi的2.4版本,我就直接测试了一下连接数据库.没想到简单地连接操作就报告错误,一看,是adodbapi.py中的错误,在其中有这样声明的异常处理:raise er,'No such key as "%s" in %s'%(repr(key),self.__r
阅读全文
posted @
2011-03-17 09:28
garfieldtom
阅读(643)
推荐(0) 编辑
Python中将系统输出显示在PyQt中
摘要:开发一个系统,需要将系统的输出显示在PyQt中,可以直接截获sys.stdout,也可以使用信号和槽来实现。直接显示:"""Exampleusage:importsyssys.stdout=OutLog(edit,sys.stdout)sys.stderr=OutLog(edit,sys.stderr,QtGui.QColor(255,0,0))"""classOutLog:def__init__(self,edit,out=None,color=None):"""(edit,out=None,color
阅读全文
posted @
2011-03-11 13:42
garfieldtom
阅读(2195)
推荐(0) 编辑