2012-03-18 67 views
2

我发送一封电子邮件,并发送它我需要三个变量 - 标题,提供商和vendor_id。这是我应得的:Python编码UTF错误

# # -*- coding: utf-8 -*- 
... 
## subject 
title = title.encode('utf-8') 
subject = "%s - %s"%(provider, title) 
msg['Subject'] = subject 

## content 
body_text = "The following has been successfully delivered:\n\nVendor ID: %s\nProvider: %s\nTitle: %s\n\nThank you."%((vendor_id, provider, title)) 
content = MIMEText(body_text, 'plain') 

然而,当我送的主题被正确编码(包括标题)的电子邮件,但body_text不是(也包括标题)。这是它的外观:

Subject: testmovieprovider - Une soirée d'enfer 

Body: The following has been successfully delivered: 

Vendor ID: 02352_FR 
Provider: testmovieprovider 
Title: Une soirée d'enfer <------ why is this happening? 

Thank you. 

为什么在体内的标题不正确编码,什么我需要以改变它看起来像第一?

更新:谢谢您的反馈。这是什么工作:

MIMEText(body_text, 'plain') - >content = MIMEText(body_text, 'plain', 'UTF-8')

+0

尝试添加'#encoding UTF-8'文件 – 2012-03-18 21:12:11

+0

的顶部也就是已经有。 – David542 2012-03-18 21:14:29

+0

你是如何发送电子邮件的?该电子邮件是否有正确的'Content-Type'头文件,其中包含'charset =“utf-8”'? – Avaris 2012-03-18 21:22:41

回答

4

将编码设置为消息:

content = MIMEText(body_text, 'plain', 'utf-8')