统信UOS中Wine运行Windows程序菜单显示方块,是因缺失中文字体simsun.ttc且注册表未正确映射;需将simsun.ttc复制至~/.wine/dosdevices/c:/windows/Fonts/、执行fc-cache -fv刷新缓存,并在HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionFonts下新建字符串值“SimSun & NSimSun (TrueType)”并设数值数据为simsun.ttc。

统信UOS中Wine运行的Windows程序菜单文字显示为方块,说明Wine环境未能正确加载或映射中文字体,导致系统回退到无中文支持的fallback字体,此时必须向Wine虚拟Windows目录注入真实可用的中文字体文件并确保注册表关联正确。
确认Wine当前字体目录状态
打开终端,执行:
ls -l ~/.wine/dosdevices/c:/windows/Fonts/ | grep -i "sim|msyh|hei"
若输出为空或仅含英文名.ttf(如arial.ttf),则【确认缺失关键中文字体】。这一步不可跳过,直接决定后续操作是否有效。
注意:不要依赖~/.wine/drive_c/windows/Fonts路径——该路径在新版Wine中已弃用,实际生效的是dosdevices下的符号链接目录。
手动注入宋体simsun.ttc并注册
方法一:从Windows双系统提取(推荐)
挂载Windows分区后,执行:
cp /media/$USER/Windows/Windows/Fonts/simsun.ttc ~/.wine/dosdevices/c:/windows/Fonts/
方法二:使用合法授权的本地字体文件
将已获取的simsun.ttc文件(非ttf,必须是ttc格式)复制到目标位置:
cp ~/Downloads/simsun.ttc ~/.wine/dosdevices/c:/windows/Fonts/
复制完成后立即执行:
fc-cache -fv ~/.wine/dosdevices/c:/windows/Fonts/
这一步强制刷新Wine字体缓存,否则新字体不会被识别。不执行此命令,即使文件已存在,菜单仍会继续显示方块。
修复注册表字体映射
第一步:启动Wine注册表编辑器
wine regedit
第二步:定位到字体注册项
左侧导航至 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Fonts
第三步:新建字符串值
右键右侧空白区 → 新建 → 字符串值 → 命名为 "SimSun & NSimSun (TrueType)"
第四步:设置数值数据
双击刚建的项,在“数值数据”栏填入:
simsun.ttc
【必须严格匹配文件名大小写和扩展名】,填成simsun.ttf或SIMSUN.TTC都会失败。Wine对注册表字体条目大小写敏感,且只认ttc格式的宋体主文件。
验证并重启程序
关闭所有Wine进程:
wineboot -k
重新运行目标程序(如ApabiReader或QQ):
wine ~/Downloads/ApabiReader.exe
观察主菜单、对话框标题栏、按钮文字是否正常显示中文。若仍有局部方块,说明该程序额外依赖riched20.dll等渲染库,需单独部署——但菜单文字已恢复即代表本流程成功。

















