我尝试发送带有俄文的电子邮件,但作为输出,我得到了


  学科:
  (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/

10-12 22:10