日期:2014-05-16  浏览次数:20658 次

linux解决jfreechart中文乱码问题
做项目中用到了jfreechart用来显示统计课程排行的结果,但是在xp下显示正常,但是在linux下显示中文乱码 类似 口口口之类的

在网上搜了些,一开始由于对linux不太熟悉,也就没有解决问题,现在学习了一段fedora后,重新解决了这个问题

首先 将xp下的 simsun.ttc字体拷贝到 linux下,放在 linux的 %JAVA_HOME%/jre/lib/fonts目录下 然后修改目录下的 fonts.dir文件 将首行的数字 +1 比如 122变为123 ,然后在最后一行加上:

simsun.ttc -SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0

然后保存 ,如果是只读文件 的话 要强制保存 :w!

最后 在 含有 jfreechat的程序中 设置如下:

CategoryPlot plot = this.chart.getCategoryPlot()

plot.setForegroundAlpha(0.6F);
chart.setTitle(new TextTitle(chart.getTitle().getText(),new Font("宋体", 1, 13)));

CategoryAxis domainAxis = plot.getDomainAxis();

domainAxis.setLabelFont(new Font("宋体", 1, 12));
domainAxis.setTickLabelFont(new Font("宋体", 0, 10));

  NumberAxis numberaxis = (NumberAxis)plot.getRangeAxis();
  numberaxis.setTickLabelFont(new Font("宋体", 0, 12));

  numberaxis.setLabelFont(new Font("宋体", 0, 12));

  domainAxis.setLowerMargin(0.01D);
  domainAxis.setUpperMargin(0.01D);







示例2

1.       在/usr/share/fonts/zh_CN/TrueType   下
添加文件C:\WINDOWS\Fonts\simsun.ttc

2. 在jdk/jre/lib下

添加font.properties.zh.Redhat1.0

3.若用tomcat
在tomcat/bin/setclasspath.sh   中增加
CATALINA_OPTS= "-Djava.awt.headless=true "
export   CATALINA_OPTS

font.properties.zh.Redhat1.0文件如下:
#   @(#)font.properties.ja.linux 1.7   02/03/07
#
#   Copyright   2002   Sun   Microsystems,   Inc.   All   rights   reserved.
#

#   Component   Font   Mappings   For   RedhatLinux   8.0/zh_CN
#
serif.0=-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1
serif.1=-misc-simsun18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

serif.italic.0=-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1
serif.italic.1=-misc-simsun18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

serif.bold.0=-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1
serif.bold.1=-misc-simsun18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

serif.bolditalic.0=-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1
serif.bolditalic.1=-misc-simsun18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

sansserif.0=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
sansserif.1=-misc-simsun18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

sansserif.italic.0=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
sansserif.italic.1=-misc-simsun18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

sansserif.bold.0=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
sansserif.bold.1=-misc-simsun18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

sansserif.bolditalic.0=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1
sansserif.bolditalic.1=-misc-simsun18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

monospaced.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
monospaced.1=-misc-simsun18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

monospaced.italic.0=-b&h-lucidatypewriter-medium-i-normal-sans-*-%d-*-*-m-*-iso8859-1
monospaced.italic.1=-misc-simsun18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

monospaced.bold.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
monospaced.bold.1=-misc-simsun18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1

monospaced.bolditalic.0=-b&h-lucidatypewriter-bold-i-normal-sans-*-%d-*-