前景提要
HDC调试需求开发(15万预算),能者速来!>>> request.setCharacterEncoding("GBK"); response.setCharacterEncoding("GBK");
我在doPost方法中添加了这两句话,还是乱码,用GB2312和UTF-8都不行,就是乱码,以下是Servlet代码:
package com.lxl.Servlet; import java.awt.Font; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PiePlot; import org.jfree.data.general.DefaultPieDataset; import org.jfree.data.general.PieDataset; import com.lxl.util.DataUtils; /** * @author 刘星鹭 * @Email liuxinglumail@163.com * @version 创建时间: 2014年10月19日 下午3:53:01 */ public class PieChartServlet extends HttpServlet { private static final long serialVersionUID = 5484024445117181514L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("GBK"); response.setCharacterEncoding("GBK"); // 设置返回类型为图片 response.setContentType("image/png"); // 获取数据集对象 PieDataset dataset = createPieDataset(); // 创建图形对象 JFreeChart jFreeChart = ChartFactory.createPieChart3D("08年图书销量排行榜", dataset, true, true, false); // 获得图表区域对象 PiePlot piePlot = (PiePlot) jFreeChart.getPlot(); // 设置图表区域的标签文字 piePlot.setLabelFont(new Font("宋体", 0, 12)); // 设置图表区域无数据时的默认显示文字 piePlot.setNoDataMessage("没有销售数据"); // 设置图表区域不是圆形,由于是3D的饼状图,建议设置为false piePlot.setCircular(false); // 设置图表区域文字与图表区域的间隔距离,0.02表示2% piePlot.setLabelGap(0.02D); // 将图表以数据流的方式返回给客户端 ChartUtilities.writeChartAsPNG(response.getOutputStream(), jFreeChart, 500, 270); } private static PieDataset createPieDataset() { // 创建饼状图数据集对象 DefaultPieDataset defaultPieDataset = new DefaultPieDataset(); // 分别设置图形区域的说明和数据 defaultPieDataset.setValue("JAVA", DataUtils.getRandomData()); defaultPieDataset.setValue("C/C++", DataUtils.getRandomData()); defaultPieDataset.setValue("PHP", DataUtils.getRandomData()); defaultPieDataset.setValue("JavaScript", DataUtils.getRandomData()); defaultPieDataset.setValue("Ajax", DataUtils.getRandomData()); return defaultPieDataset; } }
乱码如下图所示: