independensoft.msg不支持特殊字符
我正在尝试使用 independensoft.msg 来生成邮件。我的文本里有一些特殊字符。不幸的是,在打开邮件时,你会发现它没有正确处理这些特殊字符。我尝试将文本编码为utf_8,但这并不起作用。下面是可重现的代码:
from independentsoft.msg import Message
import html
html_body = "<html><body><b>This is a test Ö</b></body></html>"
html_body_with_rtf = "{\\rtf1\\ansi\\ansicpg1252\\fromhtml1 \\htmlrtf0 " + html_body + "}"
rtf_body = html_body_with_rtf.encode("utf_8")
msg = Message()
msg.subject = "Test Ö"
msg.body_html_text = html_body
msg.body_rtf = rtf_body
msg.save("test_mail.msg")
输出的邮件如下:
如你所见,它没有正确处理 Ö 字符。我们如何生成这些包含特殊字符的邮件?
解决方案
在这行
html_body_with_rtf = "{\\rtf1\\ansi\\ansicpg1252\\fromhtml1 \\htmlrtf0 " + html_body + "}"
我看到了 1252,这表明可能需要将编码 cp1252,而不是 utf-8
rtf_body = html_body_with_rtf.encode("cp1252")
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。
