Неверная кодировка при создании подписи Outlook - PullRequest
0 голосов
/ 08 июня 2018

В настоящее время я пытаюсь создать и сохранить подпись Outlook.
Проблема в том, что она всегда сохраняется в кодировке по умолчанию.
Попытка изменить это в нескольких местах на UTF-8 (!) Программно, похоже, не работает.

Я предполагаю, что правильным местом будет только изменение WebOptions, поскольку другие кодировки уже установлены в UTF-8 после проверки предыдущего значения.

Есть ли способ изменить кодировку и позволить Outlook сохранить ее таким образом?

Это пример, демонстрирующий проблему:

using Microsoft.Office.Interop.Word;
using System.Runtime.InteropServices;

namespace CreateSignature
{
    class TestCreation
    {
        static void Main(string[] args)
        {
            Create();
        }

        public static void Create()
        {
            const string _LineBreak = "\v";

            string signature = string.Empty;

            Application word = new Application();
            var document = word.Documents.Add();
            var selection = word.Selection;

            word.Options.DefaultTextEncoding = Microsoft.Office.Core.MsoEncoding.msoEncodingUTF8;
            document.WebOptions.Encoding = Microsoft.Office.Core.MsoEncoding.msoEncodingUTF8;

            selection.Font.Bold = 0;
            selection.Font.Name = "Verdana";
            selection.Font.Size = 9;
            selection.Font.Color = WdColor.wdColorBlack;

            selection.TypeText("Best regards");
            selection.TypeText(_LineBreak);

            selection.TypeText("Special text ### üäöß····· ###");
            selection.TypeText(_LineBreak);

            document.SaveEncoding = Microsoft.Office.Core.MsoEncoding.msoEncodingUTF8;
            document.Saved = true;

            var signatureName = "Test.Signature";

            var emailOptions = word.EmailOptions.EmailSignature;

            emailOptions.EmailSignatureEntries.Add(signatureName, document.Range());

            //emailOptions.NewMessageSignature = signatureName;
            //emailOptions.ReplyMessageSignature = signatureName;

            word.Quit(WdSaveOptions.wdSaveChanges);
            Marshal.ReleaseComObject(word);
        }
    }
}

The *Файл 1013 * будет содержать

<meta http-equiv=Content-Type content="text/html; charset=windows-1252">

, где он должен быть utf-8 вместо windows-1252.

Кажется, что этот вопрос кажется знакомымэто не загруженный документ, и предлагаемое изменение в любом случае не работает (Fields.Count == 0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...