我尝试发送带有俄文的电子邮件,但得到的输出是
主题: (b'\ xd0 \ xaf \ xd0 \ x9a \ xd0 \ xbb \ xd1 \ x8e \ xd1 \ x87 \ xd0 \ xbd \ xd0 \ xb8 \ xd0 \ xba- \ xd0 \ xbf \ xd0 \ xbe \ xd1 \ x81 \ xd1 \ x82 \ xd1 \ x83 \ xd0 \ xbf \ xd0 \ xb8 \ xd0 \ xbb \ xd0 \ xb0 \ xd0 \ xbe \ xd0 \ xbf \ xd0 \ xbb \ xd0 \ xb0 \ xd1 \ x82 \ xd0 \ xb0',27)
这是我的代码:
subject = 'поступила оплата'
body = 'email body'
send_mail(
subject
body,
'from@gmail.com',
["to_email@test.com"],
fail_silently=False,
)
我尝试过
subject.encode('utf8')
subject.decode('utf8')
subject.encode('utf8').decode('utf8')
codecs.utf_8_encode(subject)
但是没有帮助。 我该怎么办?
答案 0 :(得分:2)
尝试:
subject = u'поступила оплата'
字符串前面的u
表示该字符串已被表示为unicode。 Python中字符串之前的字母称为“字符串编码声明”。 Unicode是一种表示比普通ASCII所能管理的字符更多的字符的方法。
您还可以像这样转换为unicode:
subject = unicode('поступила оплата')
顺便说一句,您可能还需要在脚本的开头声明编码,如下所示:
#encoding:utf8