近日,随着微软向Windows Insider预览通道推送Windows 11 25H2版本(Build 26080),大量企业级用户报告称,经典的Oracle Developer 6i开发工具在该系统下出现严重的字体渲染异常。这一问题直接导致表单界面字符错位、按钮标签重叠、中文显示为乱码,部分用户甚至无法正常启动Forms Runtime环境。作为一款诞生于上世纪90年代末的快速开发工具,Oracle Dev6i至今仍在银行、保险、政府等核心机构的遗留系统中扮演着关键角色。此次兼容性危机的爆发,再次引发了业界对于老旧技术栈更新换代的讨论。
问题表现:从“点阵模糊”到“完全失能”
据多位用户反馈,在Windows 11 25H2安装Oracle Dev6i后,Forms Builder和Forms Runtime中的默认字体(通常为“Courier New”或系统宋体)被错误地替换为一种不可识别的占位符字体。具体表现为:
- 所有英文、数字字符的间距扩大,文本行对不齐;
- 中文汉字部分显示为“口”型方框或乱码符号;
- 按钮、下拉列表等控件内部的标签被截断或超出边界;
- 部分表单在调用时直接崩溃,提示“frmb.dll 无效内存访问”。
这一问题在Windows 11 23H2及更早版本中均未出现,因此用户普遍将矛头指向25H2引入的新字体渲染引擎。微软在25H2中更新了DirectWrite和ClearType的底层实现,并移除了部分旧版字体的回退映射表,而Oracle Dev6i恰恰依赖系统GDI位图字体进行绘制,两者之间的断层导致了这场“字体灾难”。
背后的技术根源:GDI vs DirectWrite的30年错位
Oracle Developer 6i使用的Forms引擎基于Windows GDI(图形设备接口)和原始位图字体技术。该工具在开发时采用了严格的像素级坐标定位,每个控件元素的尺寸、间距均依赖特定字体的度量值。当Windows 11 25H2将默认字体渲染管道切换到DirectWrite后,系统不再为GDI应用提供完整的字体度量兼容层,导致Dev6i读取到的字体度量数据(如字符宽度、高度)发生偏移。
更棘手的是,25H2版本移除了对“非Unicode标准字体”的向后兼容支持。Oracle Dev6i在安装时会向系统中写入名为“ORACLE_DEV6I_FONTS”的自定义字体集(包括ORCL16.FNT等专有点阵字体),这些字体文件均采用较老的FNT格式。微软在25H2中默认关闭了FNT字体的注册表加载路径,除非用户手动启用“旧版字体支持”组策略。
临时解决方案:降级与补丁之争
事件发酵后,Oracle官方尚未发布正式回应。但社区中已有资深开发人员总结了数种应急方案:
-
系统级字体回退:在注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts中,手工添加Oracle Dev6i的FNT字体记录,并将渲染模式强制设为“GDI Classic”。这一方法对技术能力要求较高,且需重启系统。 -
启用兼容性模式:将
frm32.exe和ifrun60.exe设置为“Windows 7”或“Windows XP(Service Pack 3)”兼容模式,并勾选“禁用显示缩放”和“以640×480分辨率运行”。部分用户测试后表示可以正常显示,但窗口尺寸无法自适应高分屏。 -
第三方字体代理工具:使用如“FontLoader”等工具,将Dev6i所需的点阵字体映射至TrueType格式的替代品。这一方案有一定风险,可能引发更多的DLL调用异常。
-
终极退路:回退至Windows 11 23H2,或使用虚拟机安装Windows 10 LTSC 2019,在隔离环境中运行Dev6i。对于仍在生产环境使用该工具的企业而言,这几乎是唯一可靠的选择。
行业影响:遗留系统的“定时炸弹”
Oracle Developer 6i的最终支持结束于2010年,但据IDC估算,全球仍有超过12万家企业级应用在该平台上运行,尤其集中在金融核心交易、民航票务、社保系统等对稳定性要求极高的领域。Windows 11 25H2的这次字体兼容性问题,实际上只是老旧软件在现代操作系统上水土不服的一个缩影。
某股份制银行IT负责人向本报透露,该行核心信贷系统仍依赖基于Oracle Dev6i开发的Forms客户端,一旦系统升级导致该客户端无法使用,将直接影响数十个网点的日常业务受理。“我们正在评估将客户端迁移至Web版或直接替换为基于Java的新系统,但预算和测试周期至少要18个月。”该人士表示。
专家建议:企业应加速“去6i”进程
网络安全专家、前Oracle认证架构师李明浩在接受采访时指出,除了字体兼容性,Dev6i在安全性上也早已千疮百孔。该工具无法支持现代加密协议(TLS 1.3),且Forms应用的网络通信仍使用未加密的Oracle TNS协议,极易遭受中间人攻击。
“微软不会为了一款25年前的工具修改新系统的渲染引擎。企业必须意识到,每一次Windows大版本更新都可能成为压垮遗留骆驼的最后一根稻草。”李明浩建议,用户可先通过虚拟化方式临时过渡,同时立即启动应用现代化改造项目,考虑将Forms表单逐步替换为Oracle APEX或低代码平台。
截至发稿,微软尚未针对Oracle Dev6i字体问题发布任何KB补丁。但根据以往经验,微软只会在Windows安全更新中修补影响系统稳定性的关键问题,而不会为第三方老旧工具的兼容性单独出手。这意味着,Oracle Dev6i在Windows 11 25H2上的字体噩梦,很可能只能靠用户自己“解铃”。对于数以万计仍依赖该工具的机构而言,时间或许真的不多了。