首页 > 代码库 > 【小小伎俩】消杀Python解码时的UnicodeEncodeError

【小小伎俩】消杀Python解码时的UnicodeEncodeError

最近开始啃PyQt。

这货的实用价值大,值得费些劲鼓捣、折腾。

入门的导盲书很多,上手较快。缺少的是,技术含量高的文档资料。

网上很多东西是比着Qt的葫芦画瓢。

想看看先行者们的经验教训,满世界寻摸,没找到论坛,只找着一个邮件列表。

千辛万苦弄回来一堆zip文档,不想手工拆解,写个script去拆包,却遇上了麻烦。

邮件列表的文档,会有多种自然语言的编码,有时会出现解码错误:UnicodeEncodeError。

解码问题,是Python的老大难。我现在用的3.4.1,也没真正解决它。

折腾半天,自造一个办法。直接用代码说话:

from gzip import GzipFile

def special():
    z = GzipFile('./mails/2014-August.txt.gz', 'r')
    f = open('./0001.txt','w')
    l = z.readlines()
    for b in l:
        try:
            s = b.decode('gbk')
        except:
            s = utf8(b)
        finally:
            s = str(b)
        try:
            f.write(s)
        except:
            continue
    f.close()

#---------------------------------------------------
def utf8(b):
    try:
        s = b.decode('utf-8')
        return s
    except :
        return str(b)




【小小伎俩】消杀Python解码时的UnicodeEncodeError