C# 创建Outlook签名时编码无效
我当前正在尝试创建并保存Outlook签名。C# 创建Outlook签名时编码无效,c#,utf-8,outlook,ms-word,office-interop,C#,Utf 8,Outlook,Ms Word,Office Interop,我当前正在尝试创建并保存Outlook签名。 问题是,它总是以一种“默认”编码保存。 试图在多个地方以编程方式将其更改为UTF-8(!)似乎不起作用 我假设正确的位置仅是对WebOptions的更改,因为在检查之前的值时,其他编码已经设置为UTF-8 是否有办法更改编码并让Outlook以这种方式保存 这是一个演示问题的示例: using Microsoft.Office.Interop.Word; using System.Runtime.InteropServices; namespace
问题是,它总是以一种“默认”编码保存。
试图在多个地方以编程方式将其更改为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);
}
}
}
.htm
文件将包含以下内容
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
它应该是utf-8
而不是windows-1252
虽然这不是一个已加载的文档,并且建议的更改无论如何都不起作用(
Fields.Count==0
)。哪个.htm文件?@PepitoSh签名通过EmailSignatureEntries.Add添加到Outlook时创建的文件之一。路径应该是%appdata%\Microsoft\Signatures
。除非您必须有一个通用的解决方案,否则我建议您只编辑该.htm文件。@PepitoSh这些文件是为几百个用户在每次登录时生成的。我不想手动编辑它。它是否被强制使用Word?