我想将 RTF 文本转换为 Unicode。在 RTF 字体表中,可以找到字体或字体的名称(例如 Arial Cyr、Courier Greek)以及与其一起使用的字符集(0-255)。那么如何编写一个函数将具有这些设置的字符代码(0-255)转换为 Unicode?p>
正如我所见,像 Greek、Cyr、Tur 等后置标签会影响显示字符的字形,而字符集也会影响它。因此该函数可以具有以下输入参数:
fontname postfix, font charset, character code
但是接下来会发生什么呢?还是我走错路了?
最佳答案
RTF 的发明早于 Unicode。它肯定不是 ANSI 文本,RTF 仅使用 ASCII,它使用相当不完美的字符集与以十六进制编码的非 ASCII 字符以及对字符集的引用的混合。映射也并不完美,许多 Unicode 代码点没有对应的字符集。
您将花费一生的时间来创建自己的 RTF 到 Unicode 转换器。利用现有的解决方案,大多数平台都有一个。在 Windows 上,这就是 RichEdit 控件。如果您使用 .NET,则特别简单,使用 RichTextBox 类,分配其 Rtf 属性并读回其 Text 属性。这是 utf-16 编码的 Unicode。
关于unicode - 如何将 ANSI 文本转换为 Unicode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13630192/