文本输出图片 中文显示 问题
我将中文文本写入图片,出现一部分中文显示正确,一部分乱码
我的操作系统 Linux redhat的一个版本 fc3
代码:
package com.kinstar.dmt.service;
import java.io.*;
import java.awt.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;
public class DrawMenu {
public void createImage(FileOutputStream filename,String [] food,String [] jiage) {
int width = 1024;
int height = 768;
BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bi.createGraphics();
// set background:
g.setBackground(Color.black);
g.clearRect(0, 0, width, height);
g.drawLine(5,5,1019,5);
g.drawLine(5,5,5,763);
g.drawLine(1019,5,1019,763);
g.drawLine(5,763,1019,763);
g.setFont(new Font("宋体",Font.BOLD,50));
g.drawString("菜名", 200,60 );
g.drawString("价格", 700,60 );
g.drawLine(5,80,1019,80);
int FontSize = 40;
g.setFont(new Font("宋体",Font.BOLD,FontSize));
g.setColor(Color.RED);
System.err.println("food.length:"+food.length);
DoString dostring = new DoString();
for(int i = 1;i<=food.length;i++){
g.drawString(food[i-1], 200, 120+FontSize*(i-1));
g.drawString(dostring.getStr(jiage[i-1]), 700, 120+FontSize*(i-1));
}
// end draw:
g.dispose();
bi.flush();
// encode:
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(filename);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
param.setQuality(1.0f, false);
encoder.setJPEGEncodeParam(param);
try {
encoder.encode(bi);
}
catch(IOException ioe) {
ioe.printStackTrace();
}
}
}
传入的两个string数组都是中文数组