我正在尝试用这样的 unicode 画一张脸:
ಠ_ಠ
但是,它会生成矩形。
我尝试了以下方法:
BufferedImage image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_ARGB);
Graphics g = image.getGraphics();
Font font = new Font("Arial", Font.BOLD, FACE_SIZE);
g.setColor(FACE_COLOR);
g.setFont(font);
g.drawString("ಠ_ಠ", x, y);
我也尝试过以下方法:
g.drawString(new String("ಠ_ಠ".getBytes("UTF-8"), "UTF-8"), x, y);
g.drawString(StringEscapeUtils.unescapeJava("\\u0ca0\\u005f\\u0ca0"), x, y);
但是一切都产生了以下结果:
我也在 Linux、Windows 上尝试过,结果相同。更改字体没有帮助。
在我的 gradle 设置中,我确保具有以下内容:
compileJava.options.encoding = 'UTF-8'
tasks.withType( JavaCompile ) {
options.encoding = 'UTF-8'
}
我知道 Arial 支持这些字符,因为我可以在图像编辑软件中绘制它们。
如果这可能有帮助,这是在 Spring Boot 项目中。
使用为每个字符提供字形的字体。