2021-05-12 14:32:11
Linux 下思源黑體字型與 Java 之間相容性問題的解決
2020-06-16 17:53:04
從 Fedora 22 開始,系統自帶思源黑體(Source Han Sans),不再使用文泉驛正黑或微米黑(但仍然可以通過 dnf 線上安裝)。思源黑體採用 OTF 字型格式(Open Type Font),技術上是 TrueType 字型的更為先進的升級版。但經過反復測試發現,Java 對 OTF 字型的支援似乎存在問題。
儘管 Oracle 官方文件上說從 Java 7 開始已經能夠支援 OTF 字型,比如 createFont 等方法仍然可以用 TRUETYPE_FONT 等引數提供對 OTF 字型的支援,但思源黑體在 Java 程式中顯示漢字會出現方塊,特別是簡體中文語言環境下,字型看似使用的思源黑體台灣香港地區繁體版本,並沒有使用簡體中文版本,一些字顯示不出來,以方塊代替了。
在沒有多餘精力去研究字型問題的情況下,目前猜測是因為思源字型以 OTF 格式發布並且內部還存在 Hinting 資訊的問題導致 Java 識別存在問題,另外字型的語言編碼可能也是個問題。暫時的替代方法是,最好使用不帶 Hinting 資訊的 TTF 字型,比如 XHei、明蘭等社群製作的字型(不含 Hinting 資訊),另外建議刪除思源黑體軟體包安裝時自帶的 fontconfig 設定,然後直接修改 fontconfig 中的 65-nonlatin.conf 等檔案,自定義你所使用的替代字型的匹配優先順序等等。
相關文章