【发布时间】:2013-01-26 22:03:39
【问题描述】:
我写了一段代码来连接imap,然后解析body信息并插入数据库。但是我在口音方面遇到了一些问题。
从电子邮件标题中我得到了以下信息:
内容类型:文本/html; charset=ISO-8859-1
但是,我不确定我是否可以相信这些信息......
这封电子邮件是用葡萄牙语写的,所以我们有很多带有口音的单词。例如,我从电子邮件源代码中提取以下短语(使用我的浏览器):
“...安装电子产品...”
所以,我连接到 imap 并获取了一些电子邮件:
... 典型值,数据 = M.fetch(num, '(RFC822)') ...
当我打印内容时,我得到以下单词:
print data[0][1]
instala+º+úo de eletr+¦nicos
我尝试使用.decode('utf-8'),但没有成功。
instalação de eletrônicos
我怎样才能使它成为人类可读的?我的数据库是 utf-8 格式。
【问题讨论】:
-
print(type(data[0][1])); print(repr(data[0][1]))打印什么? -
@WinstonEwert - Python 2.7
-
@MartijnPieters - 输入:
和 "print(repr(" 以下列格式返回重音符号:fun\xc3\xa7\xc3\xa3o(抱歉,这是另一个重音词) -
不,这正是我想看到的。那是 UTF8 中的
função。.decode('utf8')应该可以工作,也许您需要向我们展示更多代码? -
@MartijnPieters,我试过: print repr(data[0][1]).decode('utf8') 但仍然显示“fun\xc3\xa7\xc3\xa3o”(你是对的关于解码词“功能”)
标签: python encoding character-encoding non-ascii-characters