`
thecloud
  • 浏览: 951340 次
文章分类
社区版块
存档分类
最新评论

redhat6.3 jfreechar中文乱码解决途径

 
阅读更多

最近使用到jfreechar的项目,在转移到linux上面时出现中文乱码(中文被显示为框框),网上查了一些资料,结合自身系统的特性,总结了一种安装字体的方式。在说字体安装之前首先上个测试的代码吧:web工程,用于画图的类(代码基本来自网上):

package fansy.jfreechar.demo;

import java.awt.Font;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;

public class JfreecharDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
	//	ChartUtilities t=new ChartUtilities();
	//	createChart();
	}
	public static JFreeChart createChart() {  
        StandardChartTheme standardChartTheme =
        		new StandardChartTheme("CN");   //创建主题样式  
       // standardChartTheme.setExtraLargeFont(new Font("隶书", Font.BOLD, 20));    //设置标题字体  
        standardChartTheme.setExtraLargeFont(new Font("微软雅黑",Font.BOLD,20));
        standardChartTheme.setRegularFont(new Font("宋体", Font.PLAIN, 15));  //设置图例的字体  
        standardChartTheme.setLargeFont(new Font("仿宋", Font.PLAIN, 15));        //设置轴向的字体  
       // ChartFactory.setChartTheme(standardChartTheme); //设置主题样式  
        ChartFactory.setChartTheme(standardChartTheme);
        //通过ChartFactory创建JFreeChart  
        JFreeChart chart = ChartFactory.createBarChart3D(  
                "JAVA图书销量统计",           //图表标题  
                "JAVA图书",                   //横轴标题  
                "销量(本)",                    //纵轴标题  
                createDataSet(),                    //数据集合   
                PlotOrientation.VERTICAL,       //图表方向  
                false,                      //是否显示图例标识  
                false,                      //是否显示tooltips  
                false);                     //是否支持超链接  
       
        return chart;  
    }  
	public static CategoryDataset createDataSet() {  
        //实例化DefaultCategoryDataset对象  
        DefaultCategoryDataset dataSet = new DefaultCategoryDataset();  
        //向数据集合中添加数据  
        dataSet.addValue(500, "JAVA图书", "J2SE类");  
        dataSet.addValue(100, "JAVA图书", "J2ME类");  
        dataSet.addValue(900, "JAVA图书", "J2EE类");  
        return dataSet;  
    }  
}
测试显示图片使用的jsp:

<%@ page language="java" contentType="text/html" pageEncoding="UTF-8"%>  
<%@ page import="org.jfree.chart.servlet.ServletUtilities,  
                fansy.jfreechar.demo.*"%>
<%@ page import="java.io.*" %>
<%@ page import="org.jfree.chart.ChartUtilities" %>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>  
  <head>  
    <title>Java图书销量统计</title>  
  </head>  
  <body>  
    <%  
   // 	PrintWriter w = new PrintWriter(out);//输出MAP信息
            String fileName = ServletUtilities.saveChartAsJPEG(JfreecharDemo.createChart(),450,300,session);  
         //   ChartUtilities.writeImageMap(w,"map0",false);
            String graphURL = request.getContextPath()
+ "/DisplayChart?filename=" + fileName;  
    %>  
    <img src="<%=graphURL%>" border="1">  
  </body> 
</html>
刚开始的时候不知道怎么用的,只知道运行,然后看结果。结果就是没有图出来,原来图片都保存在了tomcat的temp目录下面了,所以就上网找改变jfreechar默认图片存放路径的代码,结果找了之后还是显示不出来。后来配置了web.xml并且使用原来的(即上面的代码,而非该默认保存路径的代码)就ok了,web.xml配置如下:

<servlet>
		<servlet-name>DisplayChart</servlet-name>
		<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>DisplayChart</servlet-name>
		<url-pattern>/DisplayChart</url-pattern>
	</servlet-mapping> 
这样就可以显示图片了,但是有乱码,如何解决?

比如要画出的图含有宋体、黑体、微软雅黑的话,可以下载下面的文件:

然后执行下面的操作即可:

1.上传到服务器的JAVA_HOME/jre/lib/fonts文件夹中,然后新建一个JAVA_HOME/jre/lib/fonts.bak文件夹;

2.进入JAVA_HOME/jre/lib/fonts.bak文件夹中,执行mkfontscale命令,使用ls命令可以看到产生的fonts.scale文件;

3. 使用cat fonts.scale看出上面三个文件的链接,如下图:


4.进入JAVA_HOME/jre/lib/fonts文件夹,vi fonts.dir编辑fonts.dir文件,在末尾添加上面图中红色框的三行,同时修改第一行中的数字,在原来的基础上面加3(redhat 6.3 jdk1.6.0_10 64-bit 默认这个数字是48,加上3是51);

5.重启tomcat,即可看到图上面的中文字体正确显示,如下图:




分享,成长,快乐

转载请注明blog地址:http://blog.csdn.net/fansy1990




分享到:
评论

相关推荐

    RedHat6.3企业版+64位安装文档(详细截图)

    《RedHat6.3企业版64位安装详解》 RedHat6.3企业版是一款稳定且功能强大的Linux操作系统,尤其在64位架构下,其性能和兼容性表现更为出色。本文将详细解析其安装过程,帮助用户顺利完成系统部署。 首先,启动...

    redhat 6.3

    redhat 6.3镜像文件,对应linux系统2.6.32版本,一直再用,比较稳定。

    Redhat6.3单机安装Oracle10g文档

    Redhat6.3单机安装Oracle10g,注明相关缺失包问题。

    RedHat 6.3 工作站版本(x86_64)

    **Red Hat Enterprise Linux (RHEL) 6.3 工作站版本详解** Red Hat Enterprise Linux,简称RHEL,是全球领先的开源操作系统之一,由Red Hat公司开发并维护。RHEL 6.3是该系列的一个重要版本,特别针对工作站环境...

    Linux redhat桌面命令中文乱码解决

    ### Linux Redhat桌面命令中文乱码解决方案 在安装Redhat Linux之后,经常遇到的一个问题是中文显示出现乱码问题。这不仅影响用户体验,还可能导致一些功能无法正常使用。本文将详细介绍如何全面解决这一问题,并...

    vbox+redhat6.3+oracle11gRAC安装文档

    vbox+redhat6.3+oracle11gRAC安装文档详细图解安装过程

    RedHat 6.3 安装 Oracle 11G

    RedHat 6.3 安装 Oracle 11G Linux 操作系统是当今最流行的开源操作系统之一,而 Oracle 则是最流行的关系数据库管理系统之一。将 Oracle 安装在 Linux 操作系统上可以充分发挥两者的优势。本文将指导您在 RedHat ...

    redhat linux 中文乱码解决方法.doc

    ### Redhat Linux 中文乱码解决方法 #### 知识点一:Redhat Linux系统中文乱码问题概述 在使用Redhat Linux系统时,经常会出现中文显示为乱码的情况,这主要是由于系统的语言环境设置不正确或者缺少相应的中文字体...

    Redhat 6.3中syslog信息丢失.docx

    本文将探讨在Redhat 6.3中出现syslog信息丢失的原因以及解决方案。 首先,当开发者发现syslog日志丢失时,通常会尝试多种方法来找出问题所在。例如,检查进程是否在特定日志条目后异常退出,或debug级别是否在运行...

    redhat linux 6.3网络配置

    5. 重启网络设备:有时候重启路由器或交换机可以解决问题。 **步骤六:网络调试** 使用`tcpdump`或`wireshark`工具捕获网络流量,帮助分析问题原因。 以上就是Red Hat Linux 9.0网络配置的基本流程及问题排查方法...

    RedHat6.3-双网卡绑定

    "RedHat6.3双网卡绑定" 本篇文章主要介绍了在RedHat 6.3系统中如何实现双网卡绑定的技术。双网卡绑定是指将多个物理网卡组合成一个逻辑网卡,以提高网络可用性和带宽。下面是双网卡绑定的详细步骤。 前期准备 在...

    gmp+mpfr+mpc(redhat6.3).zip

    《Linux Redhat 6.3环境下GCC 4.3.2的安装与配置详解》 在Linux系统中,GCC(GNU Compiler Collection)是至关重要的工具,它提供了C、C++、Fortran等语言的编译器。对于开发人员来说,理解和掌握如何在特定环境下...

    RedHat_Linux6.3下Oracle_11g安装图解教程

    RedHat_Linux6.3下Oracle_11g安装图解教程 本教程将指导读者在RedHat_Linux6.3环境下安装Oracle_11g数据库。安装过程可以分为四个步骤:安装Linux操作系统、配置Linux系统下的Oracle安装环境、安装Oracle软件和...

    RedHat中文乱码解决方案

    解决Red Hat中文乱码的方法多种多样,但这里我们将专注于一个相对简单的解决方案,通过安装特定的字体包和执行一些系统命令来修复。 首先,我们需要获取两个关键的字体包,它们分别是`fonts-chinese-3.02-9.6.el5....

    卸载redhat6.3自带的mysql 绝对成功

    在RedHat 6.3上彻底卸载自带的MySQL涉及到多个步骤,包括检查已安装的MySQL组件、按顺序卸载这些组件,并解决可能出现的依赖问题。正确地执行上述步骤能够确保MySQL被安全地卸载,同时不会影响系统的其他部分。这...

    redhat 6.3 下安装kvm虚拟机

    redhat 企业版6.3安装kvm虚拟机

    LAMP_RedHat6.3_全过程

    在本教程中,我们将详细介绍如何在Red Hat Enterprise Linux 6.3(简称Red Hat 6.3)上安装和配置LAMP环境,并利用phpMyAdmin管理和Discuz论坛系统进行测试。 **一、Linux操作系统准备** Red Hat 6.3作为一款企业...

    redhat linux 6.3安装oracle RAC 11g

    在Red Hat Linux 6.3 x64操作系统上部署Oracle RAC 11g是一项复杂的任务,涉及到多个步骤和配置。以下将详细讲解这个过程: ### 1. 安装前的准备 在开始安装之前,确保系统满足Oracle 11g RAC的所有硬件和软件需求...

    红帽(redhat)linux 6.3安装手册

    文字和界面详细描述红帽6.3安装过程,其中一些选择性的安装可根据自己使用情况进行选择。

    redhat6.3+mongodb+openssl资源

    在IT领域,尤其是在服务器管理和数据库部署中,Red Hat Enterprise Linux(RHEL)6.3、MongoDB和OpenSSL是三个非常关键的组件。本篇文章将深入探讨这些技术及其相互之间的结合,帮助读者理解如何在RHEL 6.3环境下...

Global site tag (gtag.js) - Google Analytics