python - Django python发送带有非英文字符的电子邮件
问题描述
我尝试发送带有俄语字符的电子邮件,但作为输出我得到
主题: (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)
但没有帮助。我该怎么办?
解决方案
尝试:
subject = u'поступила оплата'
字符串前面的表示该u
字符串已被表示为 unicode。Python 中字符串前面的字母称为“字符串编码声明”。Unicode 是一种表示比普通 ASCII 所能管理的更多字符的方法。
您也可以像这样转换为 unicode:
subject = unicode('поступила оплата')
顺便说一句,您可能还需要在脚本开头声明编码,如下所示:
#encoding:utf8
资料来源:字符串值前面的“u”符号是什么意思?
推荐阅读
- r - 添加 ggsignif 以使用数字 x 轴进行绘图会导致错误“只能处理在 x 轴上绘制的组的数据”
- bash - 如何在 bash 脚本中将 TCL 变量设置为变量
- python - 从与该项目的索引对应的数字中查找列表中的项目?
- c# - 如何将一名球员转移到另一支球队?
- php - Wordpress 的特色图片未出现在管理员中
- open-policy-agent - 在 OPA rego 中使用 OR 条件
- python-3.x - Python subprocess.run()。将所有参数组合成一个字符串?
- java - 学校项目中带有 java.util.scanner 的 NoSuchElementException
- php - 文本区域html内的换行符
- html - 打开页面时如何显示隐藏元素?