Linux解决Wine程序中文方块乱码教程
很多人在 Linux 上使用 Wine 运行 Windows 软件时,会碰到一个高频问题:软件内的中文全部变成空白小方块 □□□,看不到汉字。出现这个现象是因为系统缺少可用中文字体,同时 Wine 没有配置字体替换规则,无法把 Windows 常用字体映射到 Linux 本地中文字体。下面手把手带你安装字体、配置 Wine 字体替换,彻底修复中文方块乱码。
适用环境:Debian / Ubuntu 及其衍生发行版
一、安装开源中文字体
我们选用文泉驿微米黑、文泉驿正黑、Noto 思源 CJK 字体,兼容性好、开源免费,是 Linux 环境适配 Wine 的优选字体。
打开终端,依次执行下面命令更新源并安装字体:
sudo apt update sudo apt install fonts-noto-cjk fonts-wqy-microhei fonts-wqy-zenhei
安装完成后刷新系统字体缓存,让系统识别新字体:
fc-cache -fv
二、把系统字体软链接到 Wine 容器目录
Wine 模拟的 Windows 环境需要读取字体文件,我们直接建立软链接,复用系统已经装好的字体,不需要重复复制字体文件:
# 指定 Wine 容器路径,默认 ~/.wine export WINEPREFIX="$HOME/.wine" # 创建 Wine 的字体目录 mkdir -p "$WINEPREFIX/drive_c/windows/Fonts" # 软链接文泉驿微米黑 ln -sf /usr/share/fonts/truetype/wqy/wqy-microhei.ttc "$WINEPREFIX/drive_c/windows/Fonts/wqy-microhei.ttc" # 软链接 Noto 思源黑体常规字重 ln -sf /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc "$WINEPREFIX/drive_c/windows/Fonts/NotoSansCJK-Regular.ttc"
三、导入 Wine 字体替换注册表配置
这一步是关键:通过注册表配置,将 Windows 程序依赖的 SimSun、Microsoft YaHei、Segoe UI、Arial 等常用字体,全部替换映射为文泉驿微米黑,同时开启字体回退功能。
在终端执行,一键生成注册表文件:
cat > wine-fonts.reg << 'EOF' REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\Fonts] "EnableFontConfigFallback"="1" [HKEY_CURRENT_USER\Software\Wine\Fonts\Replacements] "SimSun"="WenQuanYi Micro Hei" "SimSun-ExtB"="WenQuanYi Micro Hei" "Microsoft YaHei"="WenQuanYi Micro Hei" "Microsoft YaHei UI"="WenQuanYi Micro Hei" "MS Shell Dlg"="WenQuanYi Micro Hei" "MS Shell Dlg 2"="WenQuanYi Micro Hei" "Tahoma"="WenQuanYi Micro Hei" "Microsoft Sans Serif"="WenQuanYi Micro Hei" "Arial"="WenQuanYi Micro Hei" "Segoe UI"="WenQuanYi Micro Hei" "NSimSun"="WenQuanYi Micro Hei" "FangSong"="WenQuanYi Micro Hei" "KaiTi"="WenQuanYi Micro Hei" "DengXian"="WenQuanYi Micro Hei" [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes] "MS Shell Dlg"="WenQuanYi Micro Hei" "MS Shell Dlg 2"="WenQuanYi Micro Hei" "Tahoma"="WenQuanYi Micro Hei" "Microsoft Sans Serif"="WenQuanYi Micro Hei" "Arial"="WenQuanYi Micro Hei" "Segoe UI"="WenQuanYi Micro Hei" "SimSun"="WenQuanYi Micro Hei" "SimSun-ExtB"="WenQuanYi Micro Hei" "Microsoft YaHei"="WenQuanYi Micro Hei" "Microsoft YaHei UI"="WenQuanYi Micro Hei" "NSimSun"="WenQuanYi Micro Hei" [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink] "Tahoma"="wqy-microhei.ttc" "Microsoft Sans Serif"="wqy-microhei.ttc" "MS Shell Dlg"="wqy-microhei.ttc" "MS Shell Dlg 2"="wqy-microhei.ttc" "Segoe UI"="wqy-microhei.ttc" "Arial"="wqy-microhei.ttc" "SimSun"="wqy-microhei.ttc" "SimSun-ExtB"="wqy-microhei.ttc" "Microsoft YaHei"="wqy-microhei.ttc" "Microsoft YaHei UI"="wqy-microhei.ttc" "NSimSun"="wqy-microhei.ttc" EOF
生成完成后,把这个注册表文件导入 Wine:
wine regedit /S wine-fonts.reg
四、额外配置:winecfg 添加 gdiplus
最后打开 Wine 配置面板:
winecfg
切换到 Libraries(库) 标签页,在新增替代库中添加 gdiplus,保留默认设置,确认保存。

五、验证效果
全部配置完成后,关闭已经打开的 Wine 程序,重新启动。原本显示方块 □□□ 的中文界面就可以正常渲染汉字了。
小提示:
- 如果你使用自定义 WINEPREFIX(不是默认 ~/.wine),记得在执行所有命令前先重新导出你的容器路径;
- 若部分软件依旧乱码,可以检查系统区域语言(locale)是否配置为 UTF-8 中文;
- 注册表文件
wine-fonts.reg可保留,重装 Wine 后可以直接再次导入复用。
以上就是Linux解决Wine程序中文方块乱码教程的详细内容,更多关于Linux解决Wine中文方块乱码的资料请关注脚本之家其它相关文章!
相关文章
linxu服务器上nginx启动、关闭、配置检查命令(推荐)
这篇文章主要介绍了linxu服务器上nginx启动、关闭、配置检查命令,文章内容比较简单,具有一定的参考借鉴价值,需要的朋友可以参考下2018-07-07
linux安装jdk并设置环境变量的方法教程(看这一篇够了)
这篇文章主要介绍了linux安装jdk并设置环境变量的相关资料,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2020-02-02


最新评论