RedLinux 9, 区域为en,完全安装(所有软件包、语言、字体),能够正常浏览中文网站。
//JSP代码
<%@ page contentType="image/jpeg; charset=gb2312" %><%@ page import="
java.io.*,
java.awt.*,
java.awt.image.*,
com.sun.image.codec.jpeg.*"%><%
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
System.setProperty("java.awt.headless", "true");
out.clear(); //创建内存图像
BufferedImage image = new BufferedImage(320, 240, BufferedImage.TYPE_3BYTE_BGR);
Graphics2D  g = image.createGraphics(); g.setFont(new Font("楷体_G2312", Font.PLAIN, 24));
String title = new String("中文问题".getBytes("ISO8859_1"),"GB2312");
g.drawString(title, 50, 50);//显示????
g.drawString("中文问题", 50, 150);//显示4个方框
g.dispose(); //输出到浏览器
javax.imageio.ImageIO.write(image, "JPEG", response.getOutputStream());
%>这些代码出来的图片,中文要么是4个问号,要么是4个方框。查过其它的中文乱码问题,找不到,都是关于参数提交,或都从文件读取的。有哪位大侠能指点指点?万分感激……

解决方案 »

  1.   

    在图像中画文字后,显示就是乱码? 
    那就可能是发送的BufferedImage中的数据还不是像素数据.不过你可以试一下先把BufferedImage用PixelGrabber转化成像素数据,然后再用MemoryImageSource把像素数据转化成图片,然后再把图片发送到浏览器,我想这样应该可以把图像显示出来.因为图片的像素数据显示与字符编码无关,就如在不支持中文的系统上显示含有中文的图片一样正常,因为里面根本就不是字符,而是一些像素的颜色值.
      

  2.   

    g.setFont(new Font("宋体", Font.PLAIN, 24));
      

  3.   

    RedLinux 9上面我就不知道了,我用windows XP上面我试过可以的.
    <%@ page contentType="image/jpeg; charset=gb2312" %><%@ page import="
    java.io.*,
    java.awt.*,
    java.awt.image.*,
    com.sun.image.codec.jpeg.*"%><%
    //设置页面不缓存
    response.setHeader("Pragma","No-cache");
    response.setHeader("Cache-Control","no-cache");
    response.setDateHeader("Expires", 0);
    System.setProperty("java.awt.headless", "true");
    out.clear();//创建内存图像
    BufferedImage image= new BufferedImage(320, 240, BufferedImage.TYPE_3BYTE_BGR);
    Graphics2D g= image.createGraphics();g.setFont(new Font("楷体_G2312", Font.PLAIN, 24));
    String title= new String("中文问题");  //这里后面不要了.
    g.drawString(title, 50, 50);//显示????
    g.drawString("中文问题", 50, 150);//显示4个方框
    g.dispose();//输出到浏览器
    javax.imageio.ImageIO.write(image, "JPEG", response.getOutputStream());
    %>
      

  4.   

    Windows里都是没问题的,所以偶才如此郁闷!