Linux下Java程式中中文顯示的一些問題的總結

來源:互聯網
上載者:User

此處一般指應用程式,不是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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.