用RTF和C#中的变音符号替换单词

时间:2014-08-07 08:24:16

标签: c# rtf non-ascii-characters

我正在使用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());

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您正在使用ASCII编码。也许您应该使用以下代码块

更改为UTF-8
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(rtfDocumentContent)))
{
    chunk.FeedData(ms);
}

希望这有帮助