三步解决wine中文显示:设lc_all=zh_cn.utf-8环境变量建prefix、复制simsun.ttf到~/.wine/drive_c/windows/fonts/、修改system.reg中fontsubstitutes和logpixels值。

直接装好字体、改注册表、设环境变量,三步做完基本就能显示中文。关键不是“有没有装”,而是“装在哪”和“Wine用不用得到”。
确认当前 Wine Prefix 是否已设置中文环境变量
很多乱码问题其实发生在创建 prefix 的第一刻——没带 LC_ALL=zh_CN.UTF-8 或 LANG=zh_CN.UTF-8 就运行了 winecfg。
- 如果已经建好 prefix,临时生效可加前缀运行:
LC_ALL=zh_CN.UTF-8 winecfg - 但更稳妥的做法是重建 prefix:删掉旧的
~/.wine(或自定义路径),再用完整环境变量初始化:WINEARCH=win32 LC_ALL=zh_CN.UTF-8 winecfg - 注意:某些桌面环境(如 KDE)会覆盖终端启动时的
LC_ALL,建议在.desktop文件的Exec=行里也显式写上env LC_ALL=zh_CN.UTF-8 wine ...
把 SimSun 字体放进正确的 Fonts 目录并确保后缀兼容
Wine 只认 .ttf,不支持 .ttc(TrueType Collection)格式——这是最常踩的坑。即使你复制了 simsun.ttc,Wine 也加载失败,界面照样方块。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 从 Windows 系统取字体时,优先找
simsun.ttf;若只有simsun.ttc,可用fonttools拆分,或直接下载开源替代品如ukai.ttc(需转为.ttf) - 目标路径必须是:
~/.wine/drive_c/windows/Fonts/(注意大小写和斜杠方向) - 权限要可读:
chmod 644 ~/.wine/drive_c/windows/Fonts/simsun.ttf - 验证是否识别成功:运行
wine regedit→ 查看HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Fonts,里面应有SimSun (TrueType)条目
修改 system.reg 和 win.ini 强制指定中文字体回退链
只放字体文件还不够。Wine 默认仍会尝试调用 Tahoma、MS Shell Dlg 这类无中文的西文字体,导致回退失败,最终渲染成方块。
- 编辑
~/.wine/system.reg,搜索FontSubstitutes,将以下两项改为:"MS Shell Dlg"="SimSun""MS Shell Dlg 2"="SimSun" - 同时搜索
LogPixels,把值从dword:00000060改为dword:00000070(提高 DPI 基准,避免字体被缩得太小而失真) - 编辑
~/.wine/drive_c/windows/win.ini,在末尾追加:[Desktop]menufontsize=13messagefontsize=13statusfontsize=13 - 务必用 UTF-8 编码保存这些文件,别用系统默认编码(比如 GBK)编辑,否则注册表中文会二次乱码
用 winetricks 安装 cjkfonts 是捷径,但有版本陷阱
winetricks cjkfonts 看似一键解决,但它在较新 Wine 版本(≥ 8.0)中可能失效——因为其内置字体包未适配新版字体查找逻辑,或默认安装到错误 prefix。
- 执行前先确认当前环境:
echo $WINEPREFIX和echo $LC_ALL,二者必须与你目标 prefix 一致 - 推荐显式指定:
WINEPREFIX=~/.wine LC_ALL=zh_CN.UTF-8 winetricks -q cjkfonts - 若仍无效,手动安装更可靠:下载
ukai.ttc或uming.ttc→ 转.ttf→ 复制进 Fonts → 修改注册表 - 额外提示:
winetricks gdiplus riched20对部分软件(如 Foxit Reader、老版 QQ)是刚需,缺了会导致界面控件无法绘制中文
真正卡住人的地方往往不是某一步做错,而是多处微小偏差叠加:环境变量漏传、ttc 当 ttf 用、注册表路径拼错、编辑器编码选错……每一步都得对得上,中文才能稳稳出来。










