Outlook 365与专业版[save mailitem]编码问题

时间:2016-08-01 08:23:59

标签: c# outlook vsto outlook-addin mailitem

我目前正在开发一个outlook addin,它从outlook中读取邮件属性并在winform上显示。

我在outlook professional 2013的环境中建立了前景。所有功能都很好。类似于,sendername,from,to ...等属性可读地显示在winform上。

这就是我访问邮件属性的方式。

Outlook.MailItem mail;
mail.Sender.Name;

现在,如果我在具有相同系统区域设置但前景不同的环境(Outlook 365)上使用该插件

我在尝试阅读某些特定邮件时遇到解码问题。例如,如果我正在访问发件人的邮件:Adèle

Outlook.MailItem mail;
mail.Sender.Name; // ---> This returns Ad?le

当我使用outlook spy核对时,邮件具有UTF-8编码。 PC区域设置是相同的。

有一个奇怪的事情是,我将Outlook 365环境中的邮件复制到另一个(outlook专业版)并且遇到了问题,但是当我复制邮件并从outlook专业环境导入到Outlook 365时,它可以正常工作。所以我认为这与outlook 365保存或代表它的对象的方式有关?我该如何处理这个问题?我可以修复吗?

1 个答案:

答案 0 :(得分:0)

Outlook对象模型(就像所有IDispatch友好的COM库一样)以UTF-16(2字节)编码返回字符串。

确保以不将字符串转换为单字节编码的方式显示字符串。

您是否在OutlookSpy中看到同样的问题?