VFP最被人诟病的就是不支持 Unicode。而现代编程语言对其的支持是自然而然的。在VFP中,尽管有各种各样的,或昂贵或便宜或免费的解决方案,但是,使用者寥寥无几。
对于 Unicode,首先,我们需要确定我们想要达到什么目的。以简体中文和越南文为例,假设数据中的字符同时存在简体中文字符和越南文字符,下面可能是在应用中面对的场景:
如果你面对的场景是 1 和 3,也就是说,在不同的终端显示可以被操作员识别的字符,在技术上是有办法的。无论是你熟知的字符转换/OCX控件/GDI+绘制,还是你未知的简易技术;但是,如果你需要面对的 2 和 4,那么,你可能需要付出巨额的代价,除非老天爷看你长的帅......
在VFP中,我并不赞同在同一终端同时正确显示简体中文和越南文(据我所知,仅有一种昂贵的解决方案可以实现)。无论是使用哪种语言进行设计。对于操作员来说,不认识的文字只能对其产生干扰,至于设计者想通过这个手段达到的目的,系统拥有者是无感的。如果我必须面对这样的需求,我会换一种语言,例如 X#(XSharp)
剩下的,就简单了很多。通过搜索引擎,可以查阅到一些实现的技术手段,但是,在我有限的阅历中,这些可以搜索到免费技术,都仅限于“实验室”;“生产环境”下的应用,凤毛麟角,因为需要投入大量的时间和精力。真正可以在生产环境下应用的技术,请参阅TQ框架解析(八):框架内置的多线程和并行机制。
事实上,如果在个别的应用领域,实现上述上述的场景1的需求,有一种简单易行的方案:XML。
可能有人和我一样对各种各样的类库拥有非常大的好奇心,尤其是那些老外所制作的类库。也会有人和我一样尝试对某些类库进行本地化工作。这时,你真的非常痛恨 VFP 为什么不支持 Unicode。这种痛恨最终会转换为痛苦,尤其是我在做 MagicMenu 系列的本地化工作时。
一位俄罗斯的大神搞出了 XML 这样的方案可以解决这样的痛苦,想知道方案的具体内容吗?它隐藏在 VFPX 的 pdfium-vfp 项目中......
Follow me,认识不一样的 VFP!