【问题标题】:Supporting Unicode-only languages in Visual C++ 6.0 (preferably without using Unicode!)在 Visual C++ 6.0 中支持纯 Unicode 语言(最好不使用 Unicode!)
【发布时间】:2013-04-12 08:31:55
【问题描述】:

我们需要决定是否以及如何在大型旧版 Visual C++ 6.0 应用程序中支持格鲁吉亚语。

我们已经通过设置代码页支持主要的东欧语言。格鲁吉亚语虽然没有代码页,但据我所知,它仅通过 Unicode 得到支持。我们的大部分代码都隐含地假设每个字符一个字节,所以我们实际上正在寻找一种解决方法来用 8 位字符表示语言。

就 VC++ 6.0 而言,我的理解是它支持 Unicode,但对话框和资源文件是 8 位文本文件,它们不支持。

所以这一切都是对的,如果是这样,有什么办法可以解决我们的问题吗?

【问题讨论】:

  • "对话框和资源文件是 8 位文本文件,它们不是。"我相当肯定 VC 6 可以生成 Unicode 编译的资源文件。我不记得如果您手动编写它们,\u1234 会如何逃逸,但编辑器应该将它们正确组合在一起。 IMO 最好的方法是咬紧牙关,将所有内容全部修复为 UTF-16,但您可以改为将显示层代码更改为使用 UTF-16 并将其他所有内容设为 UTF-8。但是我已经这样做了,这也很痛苦。
  • 关于使用 21 世纪编译器的优势的强制性评论。 VC6 现在已经 15 岁了——计算领域的Ford Model T

标签: c++ visual-c++ visual-c++-6


【解决方案1】:

没有格鲁吉亚语的代码页。有一些特殊的编码可以将格鲁吉亚字形映射到拉丁语范围,以便与某些 pre-Unicode 字体一起使用,但当然你不能将英语和格鲁吉亚语与单一字体一起使用。

如果你真的不能支持 Unicode,你最好的破解方法是发明你自己的 8 位编码。当然,您将没有可以显示它的字体,因此您必须要么在看不到它的情况下使用它,要么添加一些转换以支持 Unicode 字体,或者为您的自定义编码制作自己的自定义字体。


更新:

如果你真的很幸运,你可能会找到一种合适的字体,它被设计为“扩展 ASCII”,在较高的 128 个字段中带有格鲁吉亚字母字符,例如重音字符在 Latin-1 中。如果格鲁吉亚字符占据了较低的 128 个字符,覆盖了拉丁/ASCII/英文字符,那么这不是“扩展 ASCII”,并且会不太有用。

不知道有没有这样的字体。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 2011-06-09
    • 1970-01-01
    • 2013-05-14
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多