1

我正在尝试使用包 RDCOMClient 使用 R 创建电子邮件。电子邮件基本上由以 UTF-8 编码的 HTML 文本(以及一些图像)组成。我遇到的问题是,虽然 HTML 对我需要的所有特殊字符进行了完美编码,但在我将电子邮件另存为 .msg 文件并使用 Outlook 打开后,特殊字符不再正确显示。因此,当我使用 RDCOMClient 的 SaveAs 功能时,一定会出现问题。

这是我的代码的最小示例:

library(RDCOMClient)
library(textutils)
OutApp <- COMCreate("Outlook.Application")
outMail = OutApp$CreateItem(0)
outMail[["To"]] = 'myemail@test.com'
outMail[["subject"]] = 'Dummy subject'
outMail[["HTMLBody"]] <- HTMLdecode('&nbsp;<b>Tout est prêt de votre côté? Faisons une vérification</b> </br>')
outMail$SaveAs(print(paste0(getwd(), '/test', ".msg",collapse="")))

输出电子邮件的正文如下所示:

 Tout est pr攼㹡 t de votre cæ~¼ã¸´t攼㸹? Faisons une v攼㸹rification

我尝试了很多涉及编码的不同方法。在我的实际情况中,我正在从 UTF-8 编码的 csv 文件中读取电子邮件正文的文本。我尝试过使用 enc2native() 函数,以及设置不同的编码(使用 withr 和 set.encoding 等)。此外,我还在具有法语设置的计算机和 Mac 上进行了尝试,但都没有运气......

我意识到,当我只用没有任何 HMTL 代码的原始句子尝试它时,它工作得非常好:

HTMLdecode('Tout est prêt de votre côté? Faisons une vérification')

在过去的两天里,我一直在尝试解决这个问题,我真的很接近将所有东西都转移到 Python,因为我现在对 R 感到非常沮丧,但是我不确定我是否真的有Python上也有同样的问题。

有谁知道如何解决这个问题?

提前非常感谢!

4

1 回答 1

-1

我找到了!您必须使用编码“latin9”保存您的程序。

于 2020-07-15T09:33:20.723 回答