下面的RTF与一些用户在过去十年中通过使用trichedit控件的自定义单词板式小应用程序(以delphi附带的示例为模型)使用delphi应用程序到处保存的RTF相似。该应用程序已在Delphi7中实现,并在XP和Windows7上运行。
我将rtf片段保存到一个rtf文件中,当我在word或wordpad中打开它时,它们会显示符号字符而不是文本。在我看来,这是有道理的,因为使用的fcharset是2,即Symbol。
{rtf1ansiansicpg1252deff0deflang1033{fonttbl{f0fnilfcharset2 SansSerif;}{f1fnilfcharset0 Calibri;}}
{*generator Msftedit 5.41.21.2510;}viewkind4uc1pardsa200sl276slmult1lang9f0fs22 Line 1f1par
}
我查看了应用程序中保存的RTF文档的一些实例,其中使用了fcharset2,我看到了以下模式:fcharset2SansSerif、fcharset3Symbol和fcharset2-Romantic。fcharset2符号对我来说很有意义,例如,它用于列表项目符号。
我不明白的是,例如,fcharset2 Romantic是如何进入rtf的?我假设某个用户有一个名为Romantic的字体,他/她键入文本,突出显示它,并将字体更改为Romantics。但是为什么富编辑控件保存fcharset2而不是fcharset0呢?
感谢
fcharsetN
标识字体的字符集。N的值是字符集的标识符。本页列出N的值:http://msdn.microsoft.com/en-us/library/cc194829.aspx
如您所见,值为2表示SYMBOL_CHARSET
。因此,每当您看到fcharset2
时,就意味着字体使用符号字符集。