Wine 運行 Windows 程式時,對話框按鈕 (「確定」、「取消」)、選單、提示文字顯示為 `<<` `>>` `??` 方框亂碼,根因在於 **預設字體 Tahoma 不支援中文字符**。本文提供兩種註冊表修復方案,經實測可完美解決 Wine 3.0 至 8.0+ 版本的中文顯示問題。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes 將系統介面字體映射為 Tahoma。wine regeditHKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutesFontSubstitutes 鍵刪除並重建為空)。fc-list :lang=zh 查看可用字體族名 (Family Name)。wine regedit,同樣定位至 FontSubstitutes。| 名稱 (Name) | 資料 (Data) - 字體族名 | 說明 |
|---|---|---|
| MS Shell Dlg | WenQuanYi Micro Hei | 對話框/選單預設字體 |
| MS Shell Dlg 2 | WenQuanYi Micro Hei | Vista+ 介面字體 |
| Tahoma | WenQuanYi Micro Hei | 直接替換 Tahoma 映射 |
| SimSun | SimSun | 若已安裝 Windows 宋體,保持原名映射 |
注意:資料欄填寫 **字體族名** (如 `WenQuanYi Micro Hei`),非檔案名。可用 fc-match "WenQuanYi Micro Hei" 驗證匹配結果。
建立 ~/.config/fontconfig/fonts.conf (或 /etc/fonts/local.conf 系統級) 強制字體回退順序:
Tahoma WenQuanYi Micro Hei MS Shell Dlg WenQuanYi Micro Hei Microsoft YaHei WenQuanYi Micro Hei
執行 fc-cache -fv 重建快取,所有 Wine 程式 (含 64-bit 前綴) 統一生效。
winecfg # 開啟 Wine 設定視窗,檢查「確定」、「取消」、「應用」按鈕中文 wine notepad # 開啟記事本,輸入中文、開啟選單、另存為對話框 wine your_app.exe # 實際業務程式完整測試
WINEPREFIX=~/.wine32 wine regedit 和 WINEPREFIX=~/.wine64 wine regedit 需**分別修改**,或使用 winetricks 批量套用。winetricks fakechinese 自動執行方案二 (映射至文泉驛微米黑),極其便捷。Wine 中文亂碼本質是**字體映射缺失**。清空 `FontSubstitutes` 讓字體回退鏈自然生效,或精準映射至系統安裝的開源中文字體,配合 `fontconfig` 全域優化,即可徹底告別 `<< >> ??`,享受無縫的 Windows 應用中文體驗。