由服务器对图片文字进行合成,前段都好好的。服务器为linux
这边要求改用方正字体,果断乱码了,打出一溜方框。
出现问题最主要的是排查问题所在。第一想到的是因为字体名称为汉字,前端给server传的时候是不是乱码了。我是用post传的,这应该不会,跟后台后,果然不是这的原因。求救于搜索引擎。
关键字:“drawString 乱码”一搜,有几个帖子,锁定在server上没有字体这个线索上。
首先写了个程序,用于获取主机所支持字体的
import java.awt.GraphicsEnvironment;
public class GetFont {
public static void main(String[] args) {
String[] fontNames=GraphicsEnvironment.getLocalGraphicsEnvironment().
getAvailableFontFamilyNames();
for(String fontName:fontNames){
System.out.println(fontName);
}
}
}
上传到服务器上编译执行了一下,只有几个逻辑字体,没有物理字体。应该是了,又写了个测试程序先上传到服务器
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Ima