我目前正在开发一个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保存或代表它的对象的方式有关?我该如何处理这个问题?我可以修复吗?
答案 0 :(得分:0)
Outlook对象模型(就像所有IDispatch友好的COM库一样)以UTF-16(2字节)编码返回字符串。
确保以不将字符串转换为单字节编码的方式显示字符串。
您是否在OutlookSpy中看到同样的问题?