在Visual c++ 6.0中支持纯Unicode语言(最好不使用Unicode!)

Supporting Unicode-only languages in Visual C++ 6.0 (preferably without using Unicode!)

本文关键字:Unicode 语言 c++ 支持 Visual      更新时间:2023-10-16

我们需要决定是否以及如何在一个大型的、遗留的Visual c++ 6.0应用程序中支持Georgian语言。

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

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

那么,这些都是正确的吗?如果是正确的,有什么方法可以解决我们的问题吗?

没有Georgian的代码页。有一些特别的编码将格鲁吉亚字形映射到拉丁范围以用于某些前unicode字体,但当然,这样您就不能将英语和格鲁吉亚文与单一字体一起使用。

如果你真的不能支持Unicode,你最好的选择是发明你自己的8位编码。当然,你不会有一个字体来显示它,所以你必须要么使用它而不能看到它,添加一些转换来支持Unicode字体,或者为你的自定义编码制作自己的自定义字体。


更新:

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

我不知道这样的字体是否存在