我正在使用RTF模板。在此模板中,有一些地方需要替换文本。使用ASCII字符时,这很好用。当我使用非ASCII字符时,字符会变为问号。
我的程序代码:
memo = memo.Replace("%TITEL%", titel);
memo是RTF文件,它在我的代码中以字符串形式呈现。 RTF模板中存在%TITEL%
en titel
具有以下文字:
Förderband
所以%TITEL%
取代Förderband
。
当我打开文档时,单词显示:
F?rderband
我将RTF字符串添加到Word文档中,其中包含以下内容:
// Read RTF document content.
string rtfDocumentContent = memo;
using (MemoryStream ms = new MemoryStream(Encoding.ASCII.GetBytes(rtfDocumentContent)))
{
chunk.FeedData(ms);
}
AltChunk altChunk = new AltChunk();
altChunk.Id = altChunkId;
// Embed AltChunk after the last paragraph.
mainDocPart.Document.Body.InsertAfter(
altChunk, mainDocPart.Document.Body.Elements<DocumentFormat.OpenXml.Wordprocessing.Paragraph>().Last());
任何人都可以帮助我吗?
答案 0 :(得分:0)
您正在使用ASCII编码。也许您应该使用以下代码块
更改为UTF-8using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(rtfDocumentContent)))
{
chunk.FeedData(ms);
}
希望这有帮助