如何在非英语(java)的图像上绘制字符串

如何在非英语(java)的图像上绘制字符串,java,graphics,Java,Graphics,我想用java drawstring方法用旁遮普语言在图像上绘制一些文本。请帮助我理解,我做错了什么 // TODO Auto-generated method stub BufferedImage image = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB); Graphics g = image.createGraphics(); g.setColor(Color.WHITE); g.fi

我想用java drawstring方法用旁遮普语言在图像上绘制一些文本。请帮助我理解,我做错了什么

// TODO Auto-generated method stub
    BufferedImage image = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
     Graphics g = image.createGraphics();
     g.setColor(Color.WHITE);
     g.fillRect(0, 0, image.getWidth(),image.getHeight());
     g.setColor(Color.BLACK);
     String data="ਸਾਨੂੰ ਵੇਖ ਕੇ ਮੁਖ ਘੁਮਾ ਜਾਂਦੇ ,ਸਾਡੇ ਨਾਮ ਤੇ ਨੀਵੀਆਂ ਪਾ ਜਾਂਦੇ , ..ਪਰ ਇਕ ਗੱਲ ਤੇ ਨਾ ਚੱਲਦਾ ਜ਼ੋਰ ਉਹਨਾਂ ਦਾਕਰਦੇ ਗੱਲਾਂ ਗੈਰਾਂ ਨਾਲਤੇ ਕਸਮਾਂ ਸਾਡੇ ਨਾਂ ਦੀਆਂ ਖਾ ਜਾਂਦੇ...";

     try {
        Font font = Font.createFont(Font.TRUETYPE_FONT, new File("/var/gurbaniwebthick.ttf"));
        font = font.deriveFont(Font.PLAIN,20);
        GraphicsEnvironment ge =
                GraphicsEnvironment.getLocalGraphicsEnvironment();
            ge.registerFont(font);
            g.setFont(font);
    } catch (FontFormatException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
     g.drawString(data,10, 20);
     try { 
       ImageIO.write(image, "jpg", new File("/var/javatest/1.jpg"));
     } catch (IOException e) { 
      e.printStackTrace();
     }

以上方法可能有效!您是否已将java文件保存在utf-8中?您是否测试过删除您引用的字体。可能是字体不是utf-8。谢谢您的帮助。当我使用unicode旁遮普字体时,问题已经解决。