此處一般指應用程式,不是WEB App.(或者是web app中產生的統計圖形等)
通用處理原則: 1.存在中文字型 2.jre能找到中文字型 3. font.properties.xx.xx 和你的系統正確對應
我以Red Hat Enterprise Linux AS release 3 (Taroon Update 2) , LANG=zh_CN.GB18030, jdk 1.4.2_02 為例,說一下過程
(自己要按照自己的情況變化,不要照搬,例如我按照下面摘抄的就不行)
1.發現存在中文字型 /usr/share/fonts/zh_CN/TrueType
2.jre的lib目錄下有 font.properties.zh_CN.Redhat8.0 ,但是我的redhat不是8.0 ,改成Redhat應該通用,於是複製一份到 font.properties.zh_CN.Redhat ,看看內容,發現裡面已經設定了中文字型,最後一行也指明了中文字型的路徑,於是 不用修改任何東西了
3.重新啟動程式/或者webserver ,ok 顯示成功了
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
下面的內容從各處摘抄而來.
1. Mandrake Linux 8.2 、JDK 1.4.1 ( 【作者:家居貓】 )
===============================================
很多朋友在 Linux 下使用 Java 開發應用程式時發現中文顯示不正常,在視窗應用中的中文顯示為一串方塊。這主要是由於字型設定不正確。JDK 內建的設定檔中,它所指定的中文字型不存在而造成了顯示不正確。本文以 Mandrake Linux 8.2 、JDK 1.4.1 為例,簡單的介紹了在 Linux 下 Java 中文環境的設定方法。其它 Linux 系統或 JDK 版本可參照本文作相應調整。
首先,檢查你的 /usr/share/fonts/ttf/gb 目錄下是否裝有中文字型 gbsn00lp.ttf 。如果沒有,也可以用 Windows 字型目錄下的 song.ttf 來代替。將字型檔拷貝到 Java 安裝目錄下的 jre/lib/fonts 下。
第二,修改 Java 安裝目錄下的 jre/lib/fonts/fonts.dir 檔案,將首行的 72 改為 73,然後添加下列內容:
gbsn00lp.ttf -Arphic Technology Co.-AR PL SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1980-0
注意:如果你用的是 song.ttf ,則應該將頭部的 gbsn00lp.ttf 改為 song.ttf 。
第三,在 Java 安裝目錄下的 jre/lib 目錄中,將字型設定檔 font.properties.zh.Turbo 複製為 font.properties.zh 。然後修改 font.properties.zh 。將檔案中所有的:
-tlc-song-medium-r-normal--*-%d-*-*-c-*-gbk-0 替換為:
-Arphic Technology Co.-AR PL SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1980-0
第四,用 JDK 內建的示範程式 SwingSet2 測試,如果看到中文菜單則說明設定成功。
===============================================
2. Java , Installanywhere 在 Redhat 上的中文問題解決方案 jacklondon [原作]
標準 jre/jdk 中只帶了 redhat 6 的 font.properties, 我在 redhat 7.3 和 redhat 8.0 上都不能用。我們需要建一個 font.properties.zh.Redhat 放在 redhat 的 jre/lib 目錄下。開啟 /usr/lib/X11/fonts/ttf-zh 或者 /usr/share/fonts/zh_CN/TrueType 下面的 font.dir, 將其中的一個中文字型名複製下來,比如 -misc-ZYSong18030-medium-r-normal--0-0-0-0-c-0-iso10646-1,按照 java 的字型規則改為 -misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1,將 font.properties.zh 中的內容複寫到 font.properties.zh.Redhat 中。
我選用字型 -misc-ZYSong18030-medium-r-normal--0-0-0-0-c-0-iso10646-1 是因為在 redhat 7.3 和 redhat 8.0 上都能用。
因為 jre/jdk 找不到 Redhat 的 true type 字型,在檔案 font.properties.zh.Redhat 最後加入
appendedfontpath=/usr/lib/X11/fonts/ttf-zh
appendedfontpath=/usr/share/fonts/zh_CN/TrueType
將字型名全部替換成 -misc-ZYSong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1