我尝试发送带有俄文的电子邮件,但作为输出,我得到了
学科:
(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,
'[email protected]',
["[email protected]"],
fail_silently=False,
)
我试过了
subject.encode('utf8')
subject.decode('utf8')
subject.encode('utf8').decode('utf8')
codecs.utf_8_encode(subject)
但是没有帮助。
我该怎么办?
最佳答案
尝试:subject = u'поступила оплата'
字符串前面的u
表示该字符串已表示为unicode。 Python中字符串之前的字母称为“字符串编码声明”。 Unicode是一种表示比普通ASCII可以管理的字符更多的字符的方法。
您还可以这样转换为unicode:subject = unicode('поступила оплата')
顺便说一句,您可能还需要在脚本的开头声明编码,如下所示:#encoding:utf8
资料来源:What does the 'u' symbol mean in front of string values?
关于python - Django python发送带有非英语字符的电子邮件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52504706/