2

我想将 RTF 文本转换为 Unicode。在 RTF 字体表中,可以找到字体或字体的名称(例如 Arial Cyr、Courier Greek)和与之一起使用的字符集(0-255)。那么如何编写一个函数,将具有这些设置的字符代码(0-255)转换为 Unicode?

如我所见,希腊语、西尔语、土耳其语等后置标签会影响显示字符的字形,而字符集也会影响它。所以函数可以有这些输入参数:

fontname 后缀、字体字符集、字符代码

但接下来是什么?还是我走错路了?

4

1 回答 1

4

RTF 早在 Unicode 之前就发明了。它肯定不是 ANSI 文本,RTF 仅使用 ASCII,它使用字符集与以十六进制编码的非 ASCII 字符以及对字符集的引用的相当邪恶的混合。映射也不完美,许多 Unicode 代码点没有对应的字符集。

您将花费一生的时间来创建自己的 RTF 到 Unicode 转换器。利用现有的解决方案,大多数平台都有一个。在 Windows 上,这将是 RichEdit 控件。如果您使用 .NET,则特别简单,使用 RichTextBox 类,分配其 Rtf 属性并读回其 Text 属性。这是 utf-16 编码的 Unicode。

于 2012-11-29T17:14:47.070 回答