可能是编译的问题,你在LINUX下重新编译一下试试

解决方案 »

  1.   

    在linux下,java环境默认不支持中文,需要做一些设置。
      

  2.   

    Linux下让JDK支持中文
    1. 原因
    JDK需要从字体配置文件中读取字体列表,而默认的字体列表并无中文字体。2. 解决方法
    为JDK的字体配置文件添加中文字体3. 操作步骤3.1. 复制字体文件到jdk的字体目录
    cd /usr/local/java/jre/lib/fonts
    cp /usr/share/fonts/zh_CN/TrueType/gbsn00l.ttf  .
    3.2. 生成字体列表文件
    ttmkfdir -o fonts.dir3.3. 查看新生成的fonts.dir文件,查看有关gbsn00l.ttf的部分
    vi fonts.dir3.4. 应该在文件的最后一行
    -Arphic Technology Co.-AR PL SungtiL GB-medium-r-normal--0-0-0-0-p-0-ascii-03.5. 回到上一层目录,将gbsn00lp.ttf加入font.properties
    cd ..
    vi font.properties
    3.6. 添加方法:
    3.6.1. 首先将3.4中看到的那一行文字复制出来,将其中的 
    0-0-0-0-p-0 改为 *-%d-*-*-p-* 
    目的是让字体能够按比例缩放,现在成为:
    -Arphic Technology Co.-AR PL SungtiL GB-medium-r-normal--*-%d-*-*-p-*-ascii-03.6.2. font.properties文件中,已经含有0和1字体,比如第一行是serif.0,第二行是serif.1,那么需要添加
    serif.2=-Arphic Technology Co.-AR PL SungtiL GB-medium-r-normal--*-%d-*-*-p-*-ascii-03.6.3. 以此类推,在每个xxxx.1下面添加xxxx.2,直到文件的# Missing Glyph Character之前。3.6.4. 添加完成,存盘退出。
    3.7. 添加环境变量JAVA_FONTS
    vi /etc/profileJAVA_FONTS=$JAVA_HOME/jre/lib/fonts3.8. 重新登陆以使环境变量生效,设置完成。
      

  3.   

    4. 测试
    运行本目录下的TestCHSGraphic.class
    Java TestCHSGraphic程序将生成test.jpg。用图片查看软件打开图片,观看其中中文是否正常。import java.awt.*;
    import java.awt.image.*;import java.io.*;
    import java.util.*;import com.sun.image.codec.jpeg.*;public class TestCHSGraphic
    {
    public static void main(String[] args) throws Exception
    {
    System.setProperty("java.awt.headless", "true");

    BufferedImage bi = new BufferedImage(200, 100, BufferedImage.TYPE_INT_RGB);

    Graphics g = bi.getGraphics();

    String s = "中文测试";

    // 注意!具体转码可能有所不同!
    g.drawString(new String(s.getBytes(), "GB2312"), 50, 50);

    bi.flush();

    FileOutputStream fos = new FileOutputStream("test.jpg");

    JPEGImageEncoder jpegie = JPEGCodec.createJPEGEncoder(fos);

    jpegie.encode(bi);

    fos.close();
    }
    }