【问题标题】:How to convert ANSI text to Unicode?如何将 ANSI 文本转换为 Unicode?
【发布时间】:2012-11-29 16:26:02
【问题描述】:

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

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

字体名称后缀、字体字符集、字符代码

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

【问题讨论】:

  • 这是用于什么编程语言的?此外,字体无关紧要,您只需要将字符集转换为例如 UTF-8。 - What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text
  • 这是重复的,看这里stackoverflow.com/questions/2192319/…
  • 我在windows下的c++上。我不相信字体是无关紧要的,因为有例如 Symbol、Webding 和其他特殊的字体名称,这会导致问题。 fontname 后缀也很重要,但我不知道 Windows 是如何处理这些后缀的。
  • 此上下文中的 ANSI 定义不明确。 Microsoft 过去错误地使用该术语来指代特定的选定代码页,但正确的术语是字符集或(用 Microsoft 的说法)代码页;而且不止一个。有一个将 Windows-1252 标准化为 ANSI 代码页的提议,但它基本上失败了,发生的事情是国际标准 ISO-8859 使这项工作过时了。 (ISO-8859-1 大体上与 Windows 代码页兼容,但有细微差别。)

标签: unicode character font-face rtf


【解决方案1】:

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

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

【讨论】:

  • 非常感谢你,汉斯!我会试试这个,并分享结果。
猜你喜欢
  • 2012-05-06
  • 1970-01-01
  • 2011-06-03
  • 2015-04-20
  • 1970-01-01
  • 2013-12-17
  • 1970-01-01
  • 2017-11-29
  • 2013-02-05
相关资源
最近更新 更多