Wine的中文顯示與字體設置

此頁由 严骞 於 2024年6月10日 (星期一) 03:37 的最後更改。 在Henry HulinuxCook陆峰和Linux Wiki用戶Chenxing的工作基礎上。

從 Linux Wiki

目錄

字無法顯示

注意字無法顯示和顯示為亂碼是不同的癥狀,如果看到亂碼,請確保系統語言和運行Wine時的語言環境一致,比如檢查系統的locale設置,或者運行wine時設置環境變量:LANG=zh_CN.UTF-8 。 如果有漢字丟失或顯示為方框,請繼續閱讀本文。

中文

解決中文無法顯示問題有三種思路:字體鏈接、字體替換或直接提供相應字體。其中「字體鏈接」方案解決的效果最好,推薦使用。其它兩種僅做參考。

字體鏈接

Windows支持字體鏈接:[1]當一種字體中不存在某個字時,可以嘗試從另一個字體文件中尋找相應的字形。所以只要把當前系統中的中文字體設為"fallback"字體,漢字通常就能正確顯示了。方法也很簡單,只需創建一個文本文件,如chn_font.reg如下[2]

REGEDIT4
 
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink]
"Lucida Sans Unicode"="wqy-microhei.ttc"
"Microsoft Sans Serif"="wqy-microhei.ttc"
"MS Sans Serif"="wqy-microhei.ttc"
"Tahoma"="wqy-microhei.ttc"
"Tahoma Bold"="wqy-microhei.ttc"
"SimSun"="wqy-microhei.ttc"
"Arial"="wqy-microhei.ttc"
"Arial Black"="wqy-microhei.ttc"

注意請將wqy-microhei.ttc替換為你系統中的字體文件名,如文泉驛正黑是wqy-zenhei.ttc(請在/usr/share/fonts及其子文件夾中尋找相應字體文件)。

Hint.gif
提示:
如果想使用其它字體,也可直接將相應的ttf或ttc文件複製到~/.wine/drive_c/windows/Fonts/,再用其文件名替換上面的wqy-zenhei.ttc即可。

最後,打開註冊表wine regedit,導入上面的註冊表文件即可。中文應該都能完美顯示了(包括Picasa中文顯示為方框、軟件安裝程序漢字無法顯示等問題均可被解決)。

Note.gif
注意:
注意上面的註冊表鍵值只能使用字體的文件名,而不能使用字體名,這是由「字體鏈接」本身的特性決定的。

使用原裝庫

由於 Wine 的字體渲染仍有缺陷,安裝相應的 Windows 原裝庫可以解決上步無法解決的某些罕見問題:[3]

winetricks gdiplus riched20 riched30

字體替代

Hint.gif
提示:
該方法僅可部分解決中文無法顯示問題(完整解決請見上節「字體鏈接」)。但當第一種方法無效時,可嘗試使用該方法做補充。

方法是打開regedit,找到 [HKEY_CURRENT_USER\Software\\Wine\\Fonts\\Replacements],添加一個鍵,鍵名為現缺少的字體,如宋體,字符串值為你想用做替代的字體,如文泉驛微米黑[4]

另一處可以進行字體替代的位置在 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes],方法同上。不過上面這個方法在字體已經存在時不會進行替代,而這個方法即使有對應字體存在也有效。[5]

提供缺少的字體

Hint.gif
提示:
該方法同樣僅可部分解決中文無法顯示問題(完整解決請見「字體鏈接」一節)。但當第一種方法無效時,可嘗試使用該方法做補充。

把Windows中的simsun.ttc複製到~/.wine/drive_c/windows/Fonts/,可以解決宋體顯示問題。

英文

安裝微軟的英文字體即可。如果有winetricks,也可:[6]

winetricks allfonts

如果不想安裝英文字體,也可參考該文[7],設定相應的字體替換。

其它

如果感覺字體太小,可以在winecfg中設置(「顯示」標籤中選擇適當的dpi即可)。

如果需要字體相關的調試信息,可以用

   env WINEDEBUG=+font wine <program>

來啟動程序。

Note.gif
注意:
以下信息不知是否過時,歡迎確認

另外,運行一些軟件時可能發現菜單的字體仍不是我們所期望的,此時可以修改~/.wine/drive_c/windows/win.ini,在文件中加入:[8]

[Desktop]
IconTitleFaceName=SimSun

參考資料

  1. MSDN: Globalization Step-by-Step
  2. wine中文字體設置及字體美化
  3. Ubuntu 中文論壇討論: wine的2個世紀難題,普通高手都解決不了(附亂碼圖片了)
  4. 讓 wine 中文程序不依賴 simsun
  5. Useful Registry Keys - The Official Wine Wiki
  6. MS Fonts
  7. 分享: wine20050628 設定字型
  8. http://www.linuxdiyf.com/viewarticle.php?id=80877

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
個人工具
简体繁体转换