方法一:
在Unix平台.列印出來的中文都是亂碼.用Log4j記錄的日誌中,中文也是?,這個問題很讓人心煩,當然以我的運氣,這種問題是一定會遇到的,現在記錄一下解決方法
因為每一個應用都會啟動一個Java進程,啟動方法就是 java $OPTS com.xxx.xxx.xxx
(java -Ddefault.client.encoding=GBK -Dfile.encoding=GBK -Duser.language=Zh -jar load-data.jar)
其中變數$OPTS就是我們要設置的JVM的啟動參數.在這裡設置JVM的字符集.設置如下:
-Ddefault.client.encoding=GBK -Dfile.encoding=GBK -Duser.language=Zh
加上這個后,基本上亂碼問題就會搞定了.如果還是搞不定,我就沒有辦法了.
log4j向文件中記錄日誌時的中文亂碼不能用上面的方法設置.設置方法為:
打開log4j.properties文件,在裡面的文件Appender中設置輸出字符集就可以了.如下所示:
log4j.appender.buss.encoding=GBK
方法二:
jdk15以後,只需在~/jre/lib/fonts/下建一個fallback目錄,把你想在java中使用的字體烤貝到這個目錄中即可
以下方法在fc6下測試通過,假設用戶的jre路徑為 /usr/java/jdk1.6.0_03/jre/
cd /usr/java/jdk1.6.0_03/jre/lib/fonts
sudo mkdir fallback
[火星人 ] Java進程在Unix平台上中文亂碼問題已經有635次圍觀