使用 RDCOMClient 设置内容类型 UTF-8

Set content type UTF-8 using RDCOMClient

我在获取电子邮件的 body UTF-8 文本时遇到问题。我的降价报告没问题,当 运行ning 来自 RStudio 时脚本可以工作 - 即 body 文本是 UTF-8。我的问题是,当我 运行 来自命令行的脚本时,我的电子邮件是使用 windows-1252 编码的,我真的不想要它。

如何设置我的代码来指定我的电子邮件 header 的内容类型为 UTF-8? InternetCodepage 至少不起作用

R-code 下面:

## Bodytext
bodyMail <- paste(__My UTF-8 message goes here__, sep  = "")

# init com api
OutApp <- COMCreate("Outlook.Application")

# Create email
outMail = OutApp$CreateItem(0)

# Params 
outMail[["InternetCodePage"]] = "65001"
outMail[["To"]] = __your_outlook_email___
outMail[["subject"]] = "Subject_text"
outMail[["BodyFormat"]] = "2"
outMail[["HTMLBody"]] = bodyMail
outMail[["Attachments"]]$Add(__path_to_html_report__)

## send it                     
outMail$Send()

Outlook(以及所有其他 IDispatch 友好的 COM 库)中的所有字符串属性都是 UTF-16。您有责任确保传递正确的数据。

附带说明一下,HTML 对正常 ASCII 范围之外的所有字符进行编码是个好主意。这样代码页就无所谓了