Как извлечь HTML из outlook msg
Я пытаюсь извлечь html-тело из файла outlook .msg с помощью библиотеки типов outlook и отобразить его на элементе управления веб-браузером в c#. На моей машине разработки он работает совершенно нормально, однако на клиентской машине часть текста из письма отображается в виде случайных китайских иероглифов.
Ниже приведен код для извлечения & show html из электронной почты :
using OL=Microsoft.Office.Interop.Outlook; OL.Application olApp = new OL.Application(); OL.MailItem mail = olApp.Session.OpenSharedItem(txtFile.Text) as OL.MailItem; webBrowser1.DocumentText = mail.HTMLBody;
На моем компьютере часть письма отображается следующим образом:
> then the "Click Here" link.
Но на клиентской машине тот же текст выглядит так :
> and then the 揅lick Here?link.
Что я уже пробовал:
**До сих пор эта проблема возникает только в том случае, если в тексте есть какие-либо двойные кавычки**, но я не могу подтвердить, связано ли это только с двойными кавычками.
У меня есть та же версия outlook, что и у клиентской машины (Outlook 2016).
Я попытался отключить функцию смарт-котировок outlook на клиентском компьютере, но это не имело никакого значения.
Я подозреваю, что некоторые языковые настройки могут быть причиной этой проблемы.
Я попробовал использовать некоторые сторонние библиотеки, такие как эта
Значение перспективы MSG-файл в C#
но это также дает неверные результаты.
Я не могу использовать библиотеку выкупа из-за проблем с затратами.
Любая помощь или руководство будут очень признательны!!
Richard Deeming
Похоже на проблему с кодировкой. Попробуйте установить кодировку UTF-8 после установки текста документа:
webBrowser1.Document.Encoding = "utf-8";