Ubuntu下NetBeans中文亂碼及方框問題的解決方法
當我在ubuntu 11.04中安裝netbeans 7.0的時候,出現(xiàn)一個奇怪的現(xiàn)象,啟動netbeans中,發(fā)現(xiàn)很多中文字無法顯示,直接顯示一個方框。很顯然是沒有找到某些字的顯示數(shù)據(jù),但是奇怪的是有些漢字可以顯示,真神奇,難道netbeans所用到的字庫居然不全嗎?
而 ubuntu可以正常顯示漢字,說明ubuntu本身的字庫應該是沒問題到。那么問題出在什么地方呢?
答案是:JRE
netbean是用java寫的,它的運行是必須要依靠JRE的,這個大家都知道。而JRE使用的字體是依靠JRE本身的配置文件來決定在系統(tǒng)中和什么字體文件對應的。
因此判定是這種對應出了問題。
根據(jù)Java的官方文檔(http://download.oracle.com/javase/1.5.0/docs/guide/intl/fontconfig.html#loading),字體對應配置文件是位于jre/lib下面,有兩種形式,一種是src文件,一種是bfc文件。bfc文件是二進制的,系統(tǒng)預定義的,所以我們需要修改的是src文件,到這個目錄,一看,如下圖:

看到這些文件名,基本也明白了個大概??纯磃ontconfig.OS.version.properties.src這種格式就應該明白,這是不同操作系統(tǒng)平臺的配置文件,jre會根據(jù)操作系統(tǒng)的不同而自動選擇對應的配置文件,因此,我打開了ubuntu 的對應文件,看第一行:
allfonts.chinese-cn-iso10646=-arphic-ar pl uming cn-light-r-normal--*-%d-*-*-c-*-iso10646-1
這里指定了jre用到邏輯字體和物理字體的對應關系,等號左邊就是jre用的邏輯字體,而等號右邊就是需要使用的物理字體了。
只是這個物理字體看起來跟火星文差不多,但是這個火星文可是正宗的X logical font description (XLFD)描述方式,這里不多說了,想了解的讀者可以自己去google一下即可。
然后再看配置文件# Font File Names部分,其中有一行:
filename.-arphic-ar_pl_uming_cn-light-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/truetype/arphic/uming.ttc
這是上面描述的物理字體和系統(tǒng)字體文件的對應描述。
左邊不就是上面我們看著像火星文的物理字體名稱嗎?正好不知道哪兒去找這個字體,這下不就有答案了。連目錄都告訴你了。
立刻跑到/usr/share/fonts/truetype目錄去一看,不要說uming.ttc,連arphic這個目錄都沒有!
這下就面臨兩個選擇:
1.修改配置文件,讓他指向系統(tǒng)有的字體文件。
也就是修改:/usr/share/fonts/truetype/arphic/uming.ttc這部分,修改成存在的字體文件名稱即可。
2.安裝一個uming.tcc字體文件。
由于uming.tcc字體是比較有名的,是一個高質(zhì)量的中文字庫。因此我還是決定選擇第二種方案。
到網(wǎng)上一goole,立刻找到了下載地址:http://ftp.br.debian.org/debian/pool/main/t/ttf-arphic-uming/ttf-arphic-uming_0.2.20080216.1-3_all.deb
下載回來之后:sudo dpkg -i ttf-arphic-uming_0.2.20080216.1-3_all.deb
安裝順利完成,這個時候再跑到/usr/share/fonts/truetype目錄去一看,這下有arphic這個目錄了,然后打開目錄一看,uming.ttc就在那里!
馬上打開netbeans,漫長的等待,終于看到了窗口,一切都有了,字體看著確實很美,不愧是arphic 產(chǎn)品啊。
自此問題完美的解決了,不管版本如何變化,都可以按照這個方式去解決問題。
網(wǎng)上一些文章說的cp字體到jre/lib/fonts/fallback,很多人不懂原理。fallback的目錄是jre字體后備目錄,意思就是按照正常配置找不到字體信息,就會在這個目錄下按照配置文件設定的順序到字體文件中去尋找。用這個方式有兩個問題,一個是效率低下。二是字體不統(tǒng)一,會出現(xiàn)例如:文件這個詞,文是楷體,件是黑體的“壯觀”景象!為什么?因為文字在楷體字庫找到了,但是這個字庫找不到件字,于是就在fallback中到黑體字庫去找,并且找到。這種現(xiàn)象就神奇的出現(xiàn)了!
所以這個方式其實是屬于歪打正著的方法,很多人糊里糊涂顯示正常了,也沒有搞懂原理。而另外一些人就會出現(xiàn)字體不統(tǒng)一到情況。
當然,上面所說的一切,在windows上均不會發(fā)生。因為windows比較統(tǒng)一,所以配置文件的配置一定可以正常工作,不會出現(xiàn)類似linux的連字體文件都可能找不到的情況。這也證明了規(guī)范,統(tǒng)一在軟件中的重要性。
相關文章

Ubuntu 26.04 LTS(Resolute Raccoon)發(fā)布:內(nèi)存要求提至6GB
2026-04-23,Ubuntu 26.04 LTS 正式版按計劃如期發(fā)布,Ubuntu 26.04 LTS 搭載 Linux 內(nèi)核 7.0 和 GNOME 50 桌面環(huán)境,原生集成英偉達 CUDA,內(nèi)存要求提至 6GB2026-04-24
桌面生產(chǎn)力直接拉滿! Ubuntu安裝后別急著用這7個設置一定要改
Ubuntu桌面系統(tǒng)安裝成功后,不要急著使用,修改后桌面生產(chǎn)力直接拉滿,今天我就把這7個我每次必改的設置完整分享出來,配上詳細步驟和實際效果2026-04-15
CPU和硬盤要求保持不變! Ubuntu 26.04 LTS最低內(nèi)存運行要求提高到 6GB
Canonical即將發(fā)布“Resolute Raccoon”Ubuntu 26.04 LTS操作系統(tǒng),資料顯示推薦內(nèi)存提高至6GB,這是2018年以來首次重大變動2026-04-08
基于Linux7.0+GNOME50+Mesa26.0! Ubuntu 26.04 LTS Beta 版發(fā)布
Ubuntu 26.04 LTS測試版如期發(fā)布,此次更新將集成大量前沿開源技術(shù),Beta 測試版搭載了尚處于開發(fā)階段的 Linux 7.0 內(nèi)核、默認采用最新的 GNOME 50.0 桌面組件、全新的 Mes2026-03-27
Ubuntu桌面系統(tǒng)爆致命漏洞! 30天可拿root權(quán)限
近日,全球知名網(wǎng)絡安全研究機構(gòu)Qualys的威脅研究部門正式披露了Ubuntu桌面系統(tǒng)的一個高危本地提權(quán)漏洞,其官方漏洞編號為CVE-2026-38882026-03-21
Ubuntu 25.10 系統(tǒng)正式發(fā)布:搭載 Linux 6.17 內(nèi)核
Ubuntu 25.10 系統(tǒng)代號“Questing Quokka”現(xiàn)已推出,集成最新的 GNOME 49 桌面環(huán)境,默認僅啟用 Wayland 會話,提升了圖形體驗2025-10-10
Debian 13升級后網(wǎng)絡轉(zhuǎn)發(fā)等功能異常怎么辦? 并非錯誤而是管理機制變更
很多朋友反饋,更新到Debian 13后網(wǎng)絡轉(zhuǎn)發(fā)等功能異常,這并非 BUG 而是 Debian 13 Trixie 調(diào)整了管理機制,具體來說是sysctl變更為由systemd-sysctl主導且配置文件變成模塊2025-08-22
SSH中斷/寶塔面板異常/分區(qū)問題等! Debian 13升級注意事項匯總
前一段時間發(fā)布了debian13,我們也分享了debian12升級到debian13的圖文教程,很多朋友在升級的時候遇到了不少問題,今天我們就來看看Debian 13升級注意事項2025-08-21
Debian12怎么升級到Debian13? Debian系統(tǒng)升級教程
心念念的Debian13終于正式發(fā)布了,該怎么升級呢?下面我們就來看看Debian12升級到 Debian13的教程2025-08-21
Ubuntu 24.04.3 LTS 正式發(fā)布: 附更新內(nèi)容匯總
Ubuntu 24.04 這一長期支持版本發(fā)布了第三個點版本升級:Ubuntu 24.04.3 LTS,涵蓋桌面、服務器與云等版本,主要是將過去數(shù)月發(fā)布的安全更新、錯誤修復和穩(wěn)定性改進整合入2025-08-09


