【发布时间】:2022-04-19 23:55:05
【问题描述】:
如果某些用户自动化 Outlook 客户端以查看共享收件箱中的退回邮件/ReportItems,而不是按照文档中的指示返回邮件的明文文本,则会有一个已被解析为 UTF-8 字符串的 unicode 字符串- 所以它看起来像中文。
我可以通过一些代码来解决这个问题,但另一个问题是,对于所有有权访问该收件箱的用户,Outlook 中也会发生这种变化。在 Outlook 中查看的邮件本身显示为中文字符 - 原始 unicode html 被解析为 UTF-8。
我们正在使用正常的方法来访问报告项:
For Counter as Integer = Inbox.Items.Count To 1 Step -1
Dim Report As Outlook.ReportItem = Inbox.Items(Counter)
Dim Body As String = Report.Body
最后一行是我们得到乱码文本的地方。在 VBA 中,它尝试将其解析为 ASCII 并返回一大块“?”。在 .Net 中,它返回解析为 UTF-8 的值,我们得到显示为中文的字符。在任何一种情况下,收件箱中的报告项都会开始显示为中文字符,并将继续为该收件箱的所有用户显示。
【问题讨论】:
标签: vb.net vba encoding outlook exchange-server